2018年8月14日训练日记

今天的主要任务是补昨天杭电多校的题目。。。

客观的说,昨天杭电的多校简单题偏难(差点爆零),难题偏简单(大佬4小时AK)。

总结了一下,其实有4道题可以做,但是需要补的有6道。除了1005(莫比乌斯反演?)和1010(分块+矩阵快速幂?)队友补的外,剩下的1001、1008、1009、1011我都看了。其中1009的树上分块暂时没看懂(待补)。其余三道都已经理解并且写了题解,然后今天又抄了一份dls的输入挂。

1001是最短路变形,其实是用了最短路的思想。关键在于如何保证全局最优。LY大佬最先想出枚举i步,dfs这次i步能走到的所有点标记,边也标记,这样所有点和边最多只能走一次,第一次走到n就是答案。

1008是lca+思维+树上差分树状数组。之前做过一道没有修改的原题。单点修改只需要差分一下用树状数组维护(区间更新单点查询)。。。用dfs序做下标,然后关键在于边标号化为连的点编号。。。其实并不难理解。。。

1011就是优化暴力+输入挂。但是不知道我用set为何会WA。。。

还有一个就是想了一下之前cf的C和百度之星初赛B轮的1004,它们有一个共同点:

枚举答案,以答案为界,然后考虑大于答案和小于答案的分别怎么处理。

cf的c是直接用队列模拟判断答案是否合法,而百度之星的是用二分确定答案是否合法。这两道题我都是花了超过2个小时没做出来,看完题解理解之后深深地感受到了自己的菜。看来有时候模拟题考虑过程可能很复杂,但是考虑结果就很容易求解,也很容易理解。

然后现在的感觉还是 基础知识不够扎实,见题太少。继续努力吧。

你可能感兴趣的:(训练日记)