深高北校内赛标程
2025-03-19 19:33:58
发布于:广东
T1.乘法练习
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
int a = n % 1000;
n /= 1000;
int b = n % 1000;
n /= 1000;
cout << a * b * n;
return 0;
}
T2.TJZ之王
#include <bits/stdc++.h>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
int aa, bb, cc;
cin >> aa >> bb >> cc;
int x = 0, y = 0;
if(a > aa) x++;
else y++;
if(b > bb) x++;
else y++;
if(c > cc) x++;
else y++;
if(x >= 2) cout << "009";
else cout << "xiaoshuai";
return 0;
}
T3.团伙首领
#include <iostream>
using namespace std;
// 创建桶数组
int tong[1000000 + 5];
int main() {
int n;
cin >> n;
for(int i = 1; i <= n; i++) {
int a;
cin >> a;
tong[a]++;
}
int ans = 0;
for(int i = 1; i <= n; i++) {
// 统计有多少个不同的团伙
if(tong[i] >= 1) ans++;
}
cout << ans << endl;
return 0;
}
T4.不与最大数相同的数字之和
#include <iostream>
using namespace std;
int a[105];
int main() {
int n, mx = 0, sum = 0;
cin >> n;
for(int i = 1; i <= n; i++) {
cin >> a[i];
mx = max(mx, a[i]);
}
for(int i = 1; i <= n; i++) {
if(a[i] == mx) continue;
sum += a[i];
}
cout << sum;
return 0;
}
T5.蛇皮矩阵
#include <iostream>
using namespace std;
// 初始化矩阵
int a[105][105];
int main() {
int n;
cin >> n;
int num = 1; // 当前要填充的数字
for (int i = 0; i < n; ++i) {
if (i % 2 == 0) {
// 奇数行:从左到右填充
for (int j = 0; j < n; ++j) {
a[i][j] = num++;
}
} else {
// 偶数行:从右到左填充
for (int j = n - 1; j >= 0; --j) {
a[i][j] = num++;
}
}
}
// 输出矩阵
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
cout << a[i][j] << " ";
}
cout << endl;
}
return 0;
}
T6.颜料覆盖
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m; // 输入区域数 n 和绘画次数 m
// 遍历每个区域(矩阵的每一行)
for(int i = 1; i <= n; i++) {
int mx = 0, mx_idx = 0, zero = 0, pre = 0;
// mx: 当前区域的最大涂抹强度
// mx_idx: 最大涂抹强度对应的绘画次数
// zero: 当前区域中未涂抹的次数(即 a[i][j] == 0 的次数)
// pre: 在最大涂抹强度之前,有多少次涂抹强度比它小
// 遍历当前区域的每一次绘画
for(int j = 1; j <= m; j++) {
int x;
cin >> x; // 输入当前绘画的涂抹强度
if(x == 0) {
zero++; // 如果未涂抹,zero 加 1
} else if(x > mx) {
// 如果当前涂抹强度大于最大值
mx = x; // 更新最大值
mx_idx = j; // 更新最大值对应的绘画次数
pre = j - zero - 1; // 计算在最大值之前有多少次有效涂抹
// j - zero - 1 的含义:
// j 是当前绘画次数,zero 是未涂抹的次数,
// 所以 j - zero 是有效涂抹次数,再减去 1(当前这次)就是之前的有效涂抹次数
}
}
// 输出当前区域的结果
cout << mx_idx << ' ' << pre << '\n';
}
return 0;
}
T7.上台阶2
#include <iostream>
using namespace std;
int main() {
int N;
cin >> N; // 输入台阶数 N
// 初始化数组 dp
int dp[N + 1];
dp[0] = 1; // 在地面只有一种方法
// 计算每一级台阶的方法数
for (int i = 1; i <= N; ++i) {
dp[i] = 0; // 初始化为 0
if (i - 1 >= 0) dp[i] += dp[i - 1]; // 从 i-1 迈 1 级
if (i - 2 >= 0) dp[i] += dp[i - 2]; // 从 i-2 迈 2 级
if (i - 3 >= 0) dp[i] += dp[i - 3]; // 从 i-3 迈 3 级
}
// 输出结果
cout << dp[N] << endl;
return 0;
}
这里空空如也
有帮助,赞一个