狂砍之 J,狂骗之 S
前奏
day -???
“上天给我一点 RP,上天给我一点 RP,上天给我一点 RP……”
day 1
早上神奇地发烧了,但是低烧。
肯定是拜得的 RP 起作用了,很快烧就退了。进入考场时脑子是清醒的(oh yeah)。
J 组
8:30Trick||Treat!。CCF 为什么会把密码出成这么规整的单词呢?
考后才知道,因为当天是万圣节。
看 T1,是一道入门题。高高兴兴写 T1。
// T1 Code
string ans = "0000";
char seatid1, seatid2;
...判断:如果前三问都成立...
if(abs(seatid1 - seatid2) == 1)
ans[3] = '1';
...
cout <<ans <<endl;
高高兴兴测完样例。样例全对!(伏笔)
8:45 左右开始看 T2。显然只是略有加强的回文串模板题,思路上 AC 了(就是双指针+回文串相关模板)。但是严肃注意到代码会比较恶心,各种边界会天花乱坠。
不敢着急,慢慢写 T2。
可能是 9:10 左右,过掉了 T2 所有样例。
看 T3,一眼看出按位贪心。飞快地写完了。过掉所有样例。
看 T4。疯狂地发挥我思维的广度,思考十分钟无果。突然想到这题的操作过程本质就类似括号串匹配。又严肃推出一些性质。
然后就搞出 T4 了。
但是由于代码能力烂得一坨,导致许多加一减一和特判一开始根本没有考虑到。怎么办呢?经过二十分钟左右的痛苦调试,终于过掉了所有样例。
我愉快地记住,那时是 10:24。
我 T4 的做法用了 6 个数组(虽然实际上是正确的),这使我怀疑其正确性。于是写了一个对拍,拍了十几组
或许是因为之前的模拟赛也有没 AC T1 的情况,或许是单纯地觉得 T1 的题目很有意思(?),我接着就开始测 T1。
或许是上天有意提醒我,我的手,敲下了这样一组数据并运行:
// travel.in
02 05D 02 05F
// travel.ans
1111
// travel.out
1110
Why, baby, why???
终于,我发现了 T1 的惊天大 bug!!!(伏笔照应)
于是迅速改回。
后来又测了 T2,T3,感觉没什么问题。
当保持安静的黄字配着庄重的黑底占满屏幕时,我满意地笑了。
或许能 AK!
但是真的能不能,谁知道呢?
a break
中午拥有 20 min 的 deep sleep。
下午精神饱满。
S 组
14:25 拿到解压密码 Oct31==Dec25。赛后经过对游记的大学习方知道其意义。
14:30 开始做 T1。通过想象画面法
很快就写完了代码。
开 T2。注意到数据范围
胡乱地算了运算次数,竟然小于
尝试做 T3。花 1.5h 胡了个假做法,还辛苦调试了很久,气煞我也。
最后 40 分钟,我开始奋起骗分!
如果所有的部分分和切掉的题都没有错的话,应该有
希望 S 组能一等,希望 S 组能一等,希望 S 组能一等……
最终结算
J 组:[90, 100] + [80, 100] + [90, 100] + [70, 100] = [330, 400] = 肯定一等,有概率 AK。
S 组:[90, 100] + [70, 100] + [30, 56] = [190, 256] = 有点悬,一等或二等。