时间安排
7
:
50
−
8
:
20
7:50-8:20
7:50−8:20 把四道题都看了一遍,T1,T4感觉就是个找规律,T2像是dp,T3最短路。
8
:
20
−
9
:
00
8:20-9:00
8:20−9:00 对于T1,我先打了个表,发现有循环节,所以我就在考虑如何求出这个循环,我发现对于被奇数区间覆盖的循环节是2,被偶数区间覆盖的循环节是2的次方,然后我就想求出最大公倍数然后循环做,但是有的循环节太大了导致TLE。
9
:
00
−
10
:
20
9:00-10:20
9:00−10:20 对于T2,我的想法是设
f
i
f_i
fi 表示考虑前
i
i
i 位的最小的答案,然后转移就是是否加1,然后判断的话我的想法是在转移一个数组维护前后顺序关系,但是不好维护,所以我就又想用邻接表来维护顺序,考虑第一个字符一定是字母表的第一个,这样一定最优,以此类推动态维护前后关系,码了半天码不对,自己造了几组小数据卡掉了,就删了然后暴力枚举可能的顺序。
10
:
20
−
11
:
00
10:20-11:00
10:20−11:00 T3我先按题目的思路写了一个dijkstra,然后发现瓶颈在于如何去维护这个图,因为图的边太多,一个一个加边必定会TLE,所以我的想法是对于相同的点用并查集来维护,然后在用邻接矩阵来维护连通性,但是时间复杂度还是很高,因此我专门加了一个特判n很大的情况直接输出-1,没想到我的时间复杂度算错了,不会TLE,然后就挂了40分。
11
:
00
−
11
:
50
11:00-11:50
11:00−11:50 对于T4,我还是觉得是个找规律,然后打表,发现确实是有规律,但是还是循环节不好找,我推了半天推不出来,就在代码中hash来找循环节。
11
:
50
−
12
:
10
11:50-12:10
11:50−12:10 提交。