CCF CSP 的刷题记录
- 开始之前的一些说明
- 只是刷题记录
- 所有题目的提交链接,都需要登入到
CCF CSP ,因为都是模拟考试,需要账号登录的
辅助代码的参考
#pragma GCC POSITION goto
#pragma GCC optimize(2)
#define DO_PRAGMA(x) _Pragma (#x)
#define TODO(x) DO_PRAGMA(message ("TODO - " #x))
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main(int argc, char const *argv[]) {
#ifndef ONLINE_DEBUG
freopen("input.data", "r", stdin);
freopen("output.data", "w", stdout);
#endif
char *str = (char*)malloc(2 * sizeof(char)); memset(str, 0, sizeof(char));
printf("the size of str: %ld\n", sizeof(str));
scanf("%2[^abcd]", str); scanf("%*c");
printf("str = %s\n", str);
free(str);
return 0;
}
2021年09月 赛题
第一题 202109-1 数组推导
题目提交链接 这题是真的简单 😄
#pragma GCC POSITION goto
#pragma GCC optimize(2)
#include <stdio.h>
#include <string.h>
int main(int argc, const char **argv) {
#ifndef ONLINE_DEBUG
freopen("input.data", "r", stdin);
freopen("output.data", "w", stdout);
#endif
int n = 0, max = 0, min = 0, i = 0, b[100];
memset(b, 0, sizeof(int));
scanf("%d", &n);scanf("%*c");
for(i=0; i<n; ++i) { scanf("%d", &b[i]);scanf("%*c"); }
max = min = b[0];
for(i=1; i<n; ++i) {
max += b[i]; if(b[i]>b[i-1]) min += b[i];
}
printf("%d\n%d", max, min);
return 0;
}
第二题 202109-2 非零段划分
题目提交链接 这题挺复杂的,要那分的话 😢
#pragma GCC POSITION goto
#pragma GCC optimize(2)
#include <stdio.h>
#include <string.h>
#define N (int)5e5+5
#define M (int)1e4+1
#define _max(a,b) ((a) > (b) ? (a): (b))
int a[N], cnt[N];
int main(int argc, const char **argv) {
#ifndef ONLINE_DEBUG
freopen("input.data", "r", stdin);
freopen("output.data", "w", stdout);
#endif
int n = 0, sum = 0, phrase = 0, i = 0;
scanf("%d", &n); scanf("%*c");
for(i = 1; i <= n; i++) {
scanf("%d", &a[i]); scanf("%*c");
if(a[i] > a[i-1]) {
cnt[a[i-1]+1]++; cnt[a[i]+1]--;
}
}
for(i = 1; i < M; i++) {
sum += cnt[i]; phrase = _max(phrase, sum);
}
printf("%d\n", phrase);
return 0;
}
第三题 脉冲神经网络
第四题 收集卡牌
第五题 箱根山岳险天下
|