近来这几天看了点东西:
1.补了下之前的回文串的题,发现manacher+hash也能做,但是我没写出来。后来看了看题解,发现了一个很有用的也很方便的回文树这种骚操作,回文树只要理解了fail指针我觉得理解起来就很容易了,思想就是末尾追加一个字符会产生多少之前没有出现过的回文子串。他可以处理与回文子串有关的很多问题,长见识了。
2.然后真的理解了dijstra算法。之前对它的理解还是太浅了,心里一直很难受,直到前天手动模拟了一遍,才知道每一次push进去的是当前已经在子集中的一个点影响到的那些点,利用优先队列每一次选一个最小的值再进行更新,这个时候才代表是子集中的。从而比赛的那道题就很好写了。很是很佩服其他人理解的这么透彻。
3.然后就是看了看有关状态压缩的一部分题目。因为一直不是很熟练,所以就结合一些经典题看了看。
4.老师发的cf泛做题挑了几道看了看,有的思路觉得很好,明白了,有的就是还是不懂原理,先看我能理解的,不懂的就慢慢想吧。
主要有:
1. Codeforces 36E Two paths
就是欧拉回路+构造。但是情况繁多,需要仔细讨论。
2.Codeforces 37E Trial for Chief
说实话现在还不理解为什么结论就是每个点到最远黑点最短路中的最大值+1.
3. Codeforces 39E What Has Dirichlet Got to Do with That?
这道题就是记忆化搜索。但是不要忘记a=1的时候特判,否则会出现无限循环
4.Codeforces 8D Two Friends
思路懂了,思路很好,就是三个圆一定要有交点,但是牵扯到计算几何的模板,精度的处理,代码还没有看
5.Codeforces 8E Beads
数位dp的题目。
6.Codeforces 17C Balance
dp,状态转移不容易想到
7. Codeforces 19E Fiary
这道题里面的结论很好,需要总结。就是dfs树和二分图的应用。分为偶环,奇环,一个奇环。。。。
这段时间只希望多见识一些题目,拓宽眼界,对以前的算法的理解我觉得还是多看题才能理解的更深入啊。