本文章来自一名希望能拿一等的小六。

初赛篇

我学习算法和 C++ 是相当晚的,C++ 是在 CSP考前 767676 天学的,而算法则更晚。在8月份的时候,我还参加了一个叫 “希望编程” 的比赛,拿了三等奖(现在看来这些都是送分题)。我的暑假其实还算可以了,至少比 9月份的生活好。

9月份开学了,而距离CSP就只有 181818 天了。然后,我妈给我买了一本《信奥一本通》。让我一直刷,复习,再刷。我当时还是很感兴趣的,也听着她的话再刷。当时确实很累,学校那烦人的作业已经耗掉我大半的精力了,回到家里的第一件事还是刷题。不过我当时并没有感到厌倦,反而越刷兴致越高。就这样我刷掉了《信奥一本通》15套模拟卷+历年真卷3套+某谷模拟卷1套。现在想起来都感觉很累,但就是不知为何当时能感觉不错。

那一天终究还是来了,我走到考场里,强迫自己冷静下来。老师把试卷发了下来,我看了看:还好,还算简单,大概能拿个 606060 吧。尽管阅读题还是有点难,但我根本不慌。

随着一声铃响,考试正式开始。我首先有 303030 分钟秒了第一大题(还好没有“吃人”的计算机原理、网络常识和小学奥数),稍微检查了一遍,觉得至少对 101010 题。然后再看到阅读题,阅读题的第一题就差点把我给难倒,但是我在没有理解题目是嘛的情况下(当时我还认为 0x 是八进制),依旧对了两三道道判断和一个选择。然后再看到第二和第三题(这两题差点把我的心态搞崩),但是到最后还是写了几个自己会的。此时还剩一个半小时了,我的心十分紧张,知道我看到了完型,差点没忍住笑出来。用 151515 分钟完成了第三大题,预计满分(当时我甚至还不知道“搜索”是什么意思,但根本不影响满分)。最后,我再改了几个答案,检查完无误后,结束铃正好想了起来。

(我旁边还有一个五年级的,一边玩草稿纸纸飞机一边写,还不用草稿纸,两个全写完。写完后还把草稿纸折成纸枪。)

后面就是等成绩了。一周后,我终于在连续 555 个小时的搏斗中查到了分数: 717171 分!这对我来说已经算高的了,在“0基础”(其实也不是“0基础”,学过一年的Python,但只是学了关于自动化、数据库开发、游戏开发、网络爬虫、Flask等,没有学算法)的情况下,依旧拿到了 717171 分的好成绩!

国庆节当天,广东开放了查分数线。我在查成绩之前和老爸说过,要是我没过就不过生日了(我生日是 9.28)。然后一查,分数线是 69.569.569.5 ,当时我高兴得跳了起来,后面问了一些人才知道,那次很多人都是 696969 ,包括练习时长两年半的,无缘复赛。

接下来就是复赛了!

复赛篇

我的复赛可以说是一塌糊涂,从任何方面来讲。写真题的时候几乎没有出现过达到当年一等线的,CSP2019也就 240240240 分,20年 230230230 ,21年题简单一点,拿了 322322322 分。而且我的备赛态度极其恶劣,每天就是刷刷B站,打打游戏而已。

到了考场上,我还是比较轻松的。毕竟21年的题也不难,22年的题应该也不会太难。

考试开始。首先翻了翻第一题,看了一下数据范围就不会了。看了一下 1≤a,b≤1091 \leq a, b \leq 10^91≤a,b≤109,并且自己也没有提前背快速幂模板,当时就慌了。再次思考后,我突然想到可以特判 a=1a=1a=1 的情况 ,这样即使 a=2,b=109a=2,b=10^9a=2,b=109 也不会超时。我大喜过望,用了约 101010 分钟便很快写好了,打好 freopen 后测试完,总共用了半个小时。

#include <bits/stdc++.h>
using namespace std;const int MAXN = 1e9;
long long a, b, ans;int main(){freopen("pow.in", "r", stdin);freopen("pow.out", "w", stdout);scanf("%d %d", &a, &b);if (a == 1){printf("1");return 0;}ans = a;for (int i=1; i<b; i++){ans *= a;if (ans > MAXN){printf("-1");return 0;}}printf("%lld", ans);return 0;
}

到第二题,我一看到题就知道是推数学的,但我不到该怎么推,也没有想过用二分。写了个暴力,本来预计 606060 的,但是没有判断整除。大样例运行了 181818 秒,但我依然无所畏惧。

#include <bits/stdc++.h>
using namespace std;int k;long long n, e, d, p, q;bool ok;int main(){freopen("decode.in", "r", stdin);freopen("decode.out", "w", stdout);scanf("%d", &k);for (int i=1; i<=k; i++){scanf("%lld %lld %lld", &n, &e, &d);p = 1;ok = false;while (p*p <= n){q = n / p;if (d*e == (p-1) * (q-1) + 1){printf("%lld %lld\n", p, q);ok = true;break;}p++;}if (!ok) printf("NO\n");}return 0;
}

第三题整整卡了我一个半小时,这也是我本次考试最大的败笔。我写了一个不算搜索的搜索,结果其实和骗分没有区别。当时真的十分着急,但字符串的知识不熟让我只能干着急。

#include <bits/stdc++.h>
using namespace std;int cnt1 = 0, cnt2 = 0;bool v;string expr;bool computing(string expr){int ind1, ind2;bool v, c;while (expr.find('(') != expr.npos){c = false;for (int i=0; i<int(expr.size()); i++){if (expr[i] == '('){ind1 = i;}else if (expr[i] == ')'){ind2 = i;expr.replace(ind1, ind2-ind1+1, to_string(computing(expr.substr(ind1+1, (ind2-1) - ind1))));c = true;}if (c) break;}}bool a, b;while (expr.find('&') != expr.npos){c = false;for (int i=0; i<int(expr.size()); i++){if (expr[i] == '&'){a = (expr[i-1] - '0');b = (expr[i+1] - '0');if (!a) cnt1++;expr.replace(i-1, 3, to_string(a&&b));c = true;}if (c) break;}}while (expr.find('|') != expr.npos){c = false;for (int i=0; i<int(expr.size()); i++){if (expr[i] == '|'){a = (expr[i-1] - '0');b = (expr[i+1] - '0');if (a) cnt2++;expr.replace(i-1, 3, to_string(a||b));c = true;}if (c) break;}}return expr[0] - '0';
}int main(){freopen("expr.in", "r", stdin);freopen("expr.out", "w", stdout);cin >> expr;if (expr.size() == 5){if (expr[1] == '&'){if (expr[3] == '&'){if (expr[0] == '0') cnt1++;v = (expr[0] - '0') && (expr[2] - '0');if (!v) cnt1++;v = v && (expr[4] - '0');}else{if (expr[0] == '0') cnt1++;v = (expr[0] - '0') && (expr[2] - '0');if (v) cnt2++;v = v || (expr[4] - '0');}}else{if (expr[3] == '&'){if (expr[2] == '0') cnt1++;v = (expr[4] - '0') && (expr[2] - '0');if (expr[0] == '1') cnt2++;v = (expr[0] - '0') || v;}else{if (expr[0] == '1') cnt2++;v = (expr[0] = '0') || (expr[2] - '0');if (v) cnt1++;v = v || (expr[4] - '0');}}printf("%d\n%d %d", v, cnt1, cnt2);}else{cout << computing(expr) << endl;printf("%d %d", cnt1, cnt2);}return 0;
}

到了第四题就只剩半小时了,当时一直不知道哪里会 RE ,到了考试的最后一秒也没有调出来,而且 cmp 函数也写错了,再加上调试代码也没有删掉……最后才知道是scanf 没有加左值引用,警种敲烂!!

#include <bits/stdc++.h>
using namespace std;
#define MAXN 501struct Point{int x, y;
}points[MAXN];bool cmp(Point a, Point b){if (a.x == b.x) return a.y > b.y;return a.x > b.x;
}int n, k;int main(){freopen("point.in", "r", stdin);freopen("point.out", "w", stdout);scanf("%d %d", &n, &k);printf("2\n");if (k == 0){for (int i=1; i<=n; i++) scanf("%d %d", points[i].x, points[i].y);sort(points+1, points+n+1, cmp);printf("1\n");int m = 1, now = 1;for (int i=1; i<n; i++){if ((points[i].x == points[i+1].x - 1 && points[i].y == points[i+1].y) || (points[i].y == points[i+1].y - 1 && points[i].x == points[i+1].x)) now++;else m = max(m, now), now = 1;}printf("%d", m);}else{printf("%d", n+k);}return 0;
}

我考完之后已经十分疲惫,然后我妈此时还打来电话说我PET 139139139 分,差一分过。我当时真的崩了呀。

总的来说,我这一次不仅没有经验,而且在算法熟练度和思维以及时间的管控都有待提升(翻译:差的要死) 。

后面查到分数,有 160160160 分,这个分数在我的意料之中,没有任何波澜。到了17号当天,我还是查了一下分数线,GD这边的一等线是 225225225 ,感觉已经算低的了。但是我刚好到了全国一等基准线,也算是“上帝”给我的一种安慰吧。

CSP 2022 游记相关推荐

  1. csp 2022 总结

    csp 2022 总结 三年来第一次挂这么惨,几乎把我送走.. J 一看, T1, T2 水, 先写了. 觉得 T3 不对劲,好像建出树就可以做 发现我的建树是 \(n^2\) 的,换了几种做法后,无 ...

  2. CSP 2022 复赛游记

    今年还是在JZ考试-- 普及组 一如既往打开题,第一题一如既往的水. 然后第二题也是秒切. 再看看第三题,我陷入了沉思,这--大模拟--果断先放弃. 一开第四题.啊这--怎么有一道一眼出的 D P D ...

  3. CSP 2022 游寄

    Day -∞ 学文化课,没时间碰 OI. 但我也是要冲击 NOIP 省一的啊! 虽然遥不可及,但我也要试试.然后就随随便便停课了. Day -3 CSP 取消了. 但真的取消了吗? Day -2 早上 ...

  4. CSP-S 2022游记

    打算把初赛和复赛写一起qwq 还是更新了复赛篇. 初赛篇 9.17 模拟考一半被拉去调初赛设备,模拟手滑把 a1a1a1 写成 aaa,80pts80pts80pts 没啦,状态低迷. 下午摆了摆盘了 ...

  5. 【2019CSP-J 普及组题解】数字游戏(number),公交换乘(transfer),纪念品(souvenir),加工领奖(work) CSP普及游记

    文章目录 T1:数字游戏 题目 CODE T2:公交换乘 题目 CODE T3:纪念品 题目 题解 CODE T4:加工领奖 题目 题解 CODE 关于普及组的想法&游记 T1:数字游戏 题目 ...

  6. PKUSC 2022游记

    Day0 虽说是线上的,但还是勉为其难称之为游记吧.毕竟,如果叫考场实录什么的又怪怪的. 上午打了SDOI2022 Day1,为了适应PKUSC所以是IOI的形式,但是165pts的成绩在IOI的形式 ...

  7. 联合省选2022游记

    Day 0 昨晚将某谷头像换成了麻美桑,顺势奶一波学姐: 身体好轻,怀着这么幸福的感觉战斗还是第一次 体が軽い,こんな幸せな気持ちで戦うなんて初めて 已经没什么好怕的了 もう何も怖くない 因为我不再是 ...

  8. ZJOI 2022 游记--zhengjun

    前言 ZJOI 王朝复辟???... 这次比赛在 5 月 3 号和 4 号,由于 qz 教育局什么五一不调休,正常放完双休回来,刚好比赛的两天就是周二周三,还做好了回来隔离半个月的心理准备,这两天算不 ...

  9. CSP-S 2022 游记题解

    赛前七日 赛前一个星期住在苏州,10.29 比赛前的星期天还打了 CF 的 Div1. 第一次场切了 Div1.前四道.当时觉得这好像不是状态不错的现象,这可能是要把运气透支的预兆-然后一个星期后的 ...

最新文章

  1. PHP 取302跳转后真实 URL 的两种方法
  2. React Native知识4-Image组件
  3. Qt Creator指定项目属性
  4. Linux 普通用户和超级用户的切换
  5. c# 获取路径的盘符_c#获取驱动器盘符
  6. pmw调光c语言程序,51单片机led灯渐变PWM调光(渐亮渐灭)C语言和汇编源程序
  7. 处理iPhone5加长屏幕的4种方法
  8. 同源策略——浏览器安全卫士
  9. lisp钢管_技术专栏集合管道模式(上)
  10. python接口自动化(四十)- logger 日志 - 下(超详解)
  11. 关于Android4.4的图片路径获取,如果回来的Uri的格式有两种
  12. 204. Count Primes 1
  13. [转]innodb的锁时间
  14. itunes刷机一直正在恢复固件要多久_ios刷机报错故障汇总指南
  15. AWWWB.COM网站克隆器
  16. ShowWindow 显示窗口
  17. Outlook关闭时最小化到任务栏的完美解决方法
  18. Android开发中App演示Gif效果动画的制作过程详讲
  19. SuperMap BIM+GIS-Revit模型处理-背景
  20. 10岁自闭症小孩,妈妈带她几次粪菌移植治疗后,自闭行为有所改善

热门文章

  1. npm install的时候报错 npm err code 1
  2. oracle巡,ORACLE巡检表
  3. txt转换epub如何转?你将在这篇文章里找到答案
  4. Ubuntu基础-终端打开软件
  5. 毕设:基于Android的校园微店的设计与实现,另有基于SSH的校园微店项目一个
  6. 校宝在线的延迟满足:做教育产业互联网平台
  7. C - Relative Relatives
  8. BANCOR学习:如何从BANCOR交易所兑换ENJIN通证?
  9. 为什么要进行无功补偿?无功补偿的原理、形式是什么?
  10. lvgl 视频叠加图标显示