CSP-S2022游记

赛前

提前一个小时到了纪中
一直在祈祷T1不炸(没想到还是炸了)

赛时

一上机就发现,这yj鼠标第一次双击时竟然不是双击而是点击???
第二次双击才是双击???
不过为了不耽误我的时间,而且也不是不能用,就决定不申请更换了
还有
纪中的dev-c++是真的拉胯
调试时右边监控的变量不会变???
多次尝试无果后,我只能通过中间输出和脑内模拟来调试
这让我消耗了大量的时间
十分感谢
(这是其中一个让我时间分配出了问题的原因)


一上来看了眼T1,似乎DP?
又发现这适用于一条链
苦思无果后,便开始看T2
一眼ST表
似乎是二维ST表?
可我只会正方形的二维ST表,怎么办?现推?
但看了看数据范围,会TLE
无奈之下只好看起了T3
通过简单的推理,发现只有在边数=n时才有可能为YES
这可以快速判断出一些答案
于是我愉快的敲起了T3的暴力(结果一敲就是一个小时,这还得再次感谢dev-c++)
思路在我脑海中快速成型
类似于建反向边来使得能找到出口为u的边,以便于给正向边(i^1)打上标记
结果dfs忘记加vis[v]=1
调了一年。。。
删边时忘判是不是反向边
调了一年。。。
过了小样例,回来做T2
我还是感觉要ST表
但我考场时局限于在一个那个二维矩阵上用ST表
导致时间复杂度完全承受不起
但几分钟内没想出其他方法
前面又还有个T1没做
无奈之下,只好返回去做T1
我心想,T1是难度最低的,一定要把它拿下
25004不是刚好等于1e4吗,再乘个k刚好1e6,或者乘个m刚好1e8,这是不是什么提示?
复杂度里有个4n?也就是说,可能要for四遍n吧?
我开始往这方面想
于是设计了个dp[i][j]表示当前已经是选了i个景点,且第i个是j号景点
复杂度O(3n)
加上枚举最后的景点一共刚好O(4n)
再考虑不重复,用一个vis记录转移时用了的点
复杂度再乘个n,一共O(3n
n)
又调了一年。。。
终于小样例过了,这似乎是正解?
但事实很快打了脸
大样例错了
眼看时间还是不到半小时
只好赌一下我这个玄学代码能拿几分

赛后总结

  1. 调试花了太多时间了
  2. 时间分配不是很合理,不应该执着于T1的,T2明明更有思路,如果在多想个半个小时还是有把握做出来的