时隔九个月,趁着EC Final重新来写下博客。 线上赛考场代码repo
JSCPC
非常耻辱地比去年打的还差,当然主要原因是手生了太多。开局手速就很慢,一度连牌子都摸不到。而最致命的是一道思维题C硬往dp上凑,然后就挣扎,这一步也是因为缺乏训练导致模型都识别不出来。最后半小时左右想到了做法,可心态使得这个想法比较混乱和模糊,最终于结果就是写不出来。
SEUCPC
侥幸地拿到了校赛冠军,主要在于这场打的时候非常顺风,使得罚时非常的少。然后题目难度普遍偏低,使得在写题时非常流畅。唯一的遗憾是最后一个小时完全想出来的C题最后还是没有调好点分治。这应该也是我们正式参加的唯一一次校赛了。😂
CCPC & ICPC 网络选拔赛
虽然说暑假里可以说是完全没怎么训练,这两场打得意外还挺符合预期,基本上除了手速慢了点之外没什么特别大的遗憾。作为赛季的一个开始而言还不错,毕竟如果后面熟练度上来之后这种情况会改善很多。
CCPC 桂林
这个赛季打的第一场正式区域赛,也是我个人认为强度最大的一场。两个队友玩出L的时间晚了一些,而更致命的则是J题图上贪心没什么思路,甚至都没有往贪心的方向去思考。我写的G题dirt了太多法,主要由于我不太会换根dp,从而写了个非常繁琐的分类dp,各方面就变得困难了许多。
CCPC 威海
这场恰好和队长的电路期中考试冲突了,由我和另外一位队友双打,在士气上就弱了不少。前期来看,作为一支双人队还是挺不错的。而当我们遇到I题的时候就非常罚坐了。又是一道贪心,换了无数种方法想不到怎么写,一道银牌题就把我们完全卡死了。后来队友又尝试了一下K,可由于没有把区间$[l,r]$转化到二维平面上无穷大矩形求并的经验,也是很难开出来。由于是二人队,所以可以姑且安慰一下这场不作数。
ICPC 合肥
可能是目前我们离Au最近的一场,我把这场的失败很大程度上归结为妮可出题题意的劣质。开局我开了两道数学题速度都还不错,一道trie题稍卡了一会儿,也跟上了榜。不得不说我认为I题是道非常简洁有趣的反演题,可惜没能够在考场上开出来。然后不得不提这该死的E题了,我们怎么看怎么不像能做的题,而不知道其他队怎么能开出来的。在最后的半小时里我们强行猜了一个题意,随便提交了一下,也没有去努力调出来,可谁知道这就是真正的题意,妮可硬生生把一道铜牌题描述成不可做题。👎(到现在题目也没放gym,题解也没给)
ICPC 杭州
本赛季最烂,没想到还能打的这么烂的。我是主犯,最后都没心情合影。原因主要我开的C题简单dp非常不清醒,甚至出题人已经把他放宽到比较弱的解法已经过了,当时真不知道为什么思维会如此混乱的。队友的树hash的还老是调不对。I题这种玩出来的东西我们没有什么思路,我很怀疑是不是有很多队用一些怪算法过了这题。
ICPC EC Final
背景
疫情放开,期末变起初,然后绩点直接爆炸,对上学期冲竞赛的想法产生怀疑。而在出门散心的时候把左锁骨摔断了,选择保守治疗,到上海的时候通过已经消散了不少,可是仍有较大影响。队伍寒假也没怎么练习纯粹抱着来上海旅游的态度来打的。
Day 0
来上海线下了,应该再也不会有线上正式赛了。😍 飘着小雨,气温挺低。上大的环境很是一般,并且发的外套也普遍小一号,但线下赛是全新的经历。热身赛不知道VS Code 上有方便的编译运行按钮,用Code::Blocks写的题。A和C签的还算快。而前年EC原题B题非常折磨,到之后也没过,估计被精度卡的半死不活。 本身不在算法圈内,线下面基也基本与我无缘。
Day 1
早上在FamilyMart吃完早餐去体育馆,还是没有赶上开幕式。开考前厕所坑位排长队,jiangly刚好在我前面一个,可惜我不是圈内人。 我开局先开C,交了四发假的狂演队友,同时也拉低了整体的进度。然后看到许多强队都没有过这题,认为有比较多的坑,然后就放到后面去做了。队友J思维不清晰,否定了才想出的正确结论,dirt了一发。然后我把C题交给队友来写,自己开始想F题。这段时间感觉自己的思考有很多的空隙,没有能够保持时时有意义的思维。队友C题写好,dirt了好几发,帮他处理完一些corner case之后终于过了。大概十二点,发了午餐,这时候感觉状态慢慢回来了,对F题的思考有效了很多,遂在另个队友的帮助下1A。这时候说是I题也有想法了,过了不久,我发现L题好像也可做。还有两个小时,这时是我们状态及心态最好的时候,以为能冲高到比较理想的位置。可是剩下的就是不断的WA,不断造样例却否不掉算法,直到最后没调出来。 放一下L题考场代码:
#include <cstdio>
char fbf[4][4];
int n, m, ans, T;
int main() {
fbf[0][0] = '1', fbf[0][1] = '1', fbf[0][2] = '1', fbf[0][3] = '0';
fbf[1][0] = '1', fbf[1][1] = '0', fbf[1][2] = '1', fbf[1][3] = '1';
fbf[2][0] = '1', fbf[2][1] = '1', fbf[2][2] = '0', fbf[2][3] = '1';
fbf[3][0] = '0', fbf[3][1] = '1', fbf[3][2] = '1', fbf[3][3] = '1';
scanf("%d", &T);
while (T--) {
scanf("%d%d", &n, &m);
ans = 0;
if (n < 4 && m < 4) {
printf("%d\n", n * m);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++)
putchar('1');
puts("");
}
continue;
}
if (n < 4) {
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
if ((i != n && j % 4) || (i == n && j % 4 != 2)) ans++;
printf("%d\n", ans);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++)
if ((i != n && j % 4) || (i == n && j % 4 != 2)) putchar('1');
else putchar('0');
puts("");
}
continue;
}
if (m < 4) {
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
if ((j != m && i % 4) || (j == m && i % 4 != 2)) ans++;
printf("%d\n", ans);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++)
if ((j != m && i % 4) || (j == m && i % 4 != 2)) putchar('1');
else putchar('0');
puts("");
}
continue;
}
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
if (fbf[(i - 1) % 4][(j - 1) % 4] - '0') ans++;
printf("%d\n", ans);
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++)
putchar(fbf[(i - 1) % 4][(j - 1) % 4]);
puts("");
}
}
return 0;
}
最后交流发现,我L题在6x6的情况下最右下角缺了个1,应该补上这个情况就行。而队友的I题好像还是没有发现问题。 肯定是只有Cu了,本来还幻想能一个赛季6块Ag的。不过也算预料之中吧,训练完全不够,对比赛也不上心,是当然和结果比较符合的。
Day 2
本身说如果打的不错还想去看看滚榜的,现在一点不想去看,能苟住铜就已经很不错了。 下午闭幕式的时间去看了《铃芽之旅》,回到体育馆的时候刚好滚到冠亚季军。最后结果确实Cu,离Ag也差了一题。全校三支队都是Cu,区别不大。 晚上华为晚宴感觉凑合,但手机无网,抽奖都没报名。