
【CSP-J模拟赛十二】题解
本题解原创于 Yichen_areak
T1
#include <bits/stdc++.h>
using namespace std;
signed main() {
cin.tie(0)->sync_with_stdio(0);
int week, day;
cin >> week >> day;
if (day <= 5)
cout << "Study";
else if (week % 2 == 1 && day == 6)
cout << "Coding";
else if (week % 2 == 1 && day == 7)
cout << "Housework";
else if (week % 2 == 0 && day == 6)
cout << "Piano";
else if (week % 2 == 0 && day == 7)
cout << "Grandma and grandpa";
return 0;
}
T2
#include <bits/stdc++.h>
#define int long long
using namespace std;
int f[109], n;
signed main() {
cin.tie(0)->sync_with_stdio(0);
f[0] = f[1] = 1;
for (int i = 2; i <= 50; i++)
f[i] = f[i - 1] + f[i - 2];
cin >> n;
for (int i = 50; i >= 1; i--) {
if (f[i] <= n) {
n -= f[i];
cout << f[i] << " ";
if (n == 0)
break;
}
}
return 0;
}
T3
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n;
int a[100];
signed main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
int ans = 0;
for (int i = 1; i <= n; i++) {
if (i == 1) {
if (a[1] > a[2] && a[1] > a[n])
ans += a[1];
} else if (i == n) {
if (a[n] > a[n - 1] && a[n] > a[1])
ans += a[n];
} else {
if (a[i] > a[i - 1] && a[i] > a[i + 1])
ans += a[i];
}
}
cout << ans;
return 0;
}
T4
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
long long n, k, s=0, c=0, m=-1e18, x;
cin >> n >> k;
while (n--) {
cin >> x;
s += x;
long long d = (x+1 == k) ? -x : 1;
c = max(d, c + d);
m = max(m, c);
}
cout << s + max(m, 0LL);
}
T5
#include <bits/stdc++.h>
using namespace std;
int n;
int a[1000009];
int f[1000009];
signed main() {
cin.tie(0)->sync_with_stdio(0);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
if (a[i] <= 0)
f[i] = 1;
}
int flag = 1;
while (flag) {
flag = 0;
for (int i = 1; i <= n; i++) {
if (a[i] > 0)
a[i] -= 1;
if (a[i] == 0 && f[i] == 0) {
flag = 1;
f[i] = 1;
}
}
}
for (int i = 1; i <= n; i++)
cout << a[i] << endl;
return 0;
}
T6
#include<bits/stdc++.h>
using namespace std;
const int N = 150;
int a[N][N][N], sum[N][N][N], n, m;
int c,b;
signed main(){
ios::sync_with_stdio(false);cin.tie(0);
cin >> n>>c>>b;
for(int i = 1; i <= n; i ++ )
for(int j = 1; j <= c; j ++ )
for(int k = 1; k <= b; k ++ )
cin >> a[i][j][k];
for(int i = 1; i <= n; i ++ )
for(int j = 1; j <= c; j ++ )
for(int k = 1; k <= b; k ++ )
sum[i][j][k]=a[i][j][k]+sum[i-1][j][k]+sum[i][j-1][k]+sum[i][j][k-1]-sum[i-1][j-1][k]-sum[i-1][j][k-1]-sum[i][j-1][k-1]+sum[i-1][j-1][k-1];
cin >> m;
while(m -- ){
int x1, x2, y1, y2, z1, z2; cin >> x1 >> y1 >> z1 >> x2 >> y2 >> z2;
cout << sum[x2][y2][z2]-sum[x1-1][y2][z2]-sum[x2][y1-1][z2]-sum[x2][y2][z1-1]+sum[x1-1][y1-1][z2]+sum[x1-1][y2][z1-1]+sum[x2][y1-1][z1-1]-sum[x1-1][y1-1][z1-1] << endl;
}
return 0;
}
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 Zyx-2012
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果