Day1 T1 起床困难综合症:
贪心即可,首先位与位之间互不影响,而我们要答案最大化,则从高位往低位枚举,若初始值的这位取0就可以让最后答案这一位是1就取0,否则若取1可以让最后答案是1就取1,做的过程中维护当前的数不大于m。
T2 魔法森林:
听说有神奇的spfa做法,QwQ。首先我们将边按a的大小排序,然后维护一颗以b为关键字的最小生成树,每次加入一条边(u,v),我们判断u,v是否已经联通,若是,则用这条路径上最大的b和当前边的b比较,若最大的b大于当前b,则删去对应的边,加入当前边,若u,v本来就不联通,直接加入就好。每次判断一下1和n是否联通,计算答案比较。现在我们的瓶颈在于如何支持找一个联通块内的最大值,删边,加边,联通性。诶!森林的联通性!用LCT维护即可!然后又学习了LCT化边权为点权。然后就没有然后啦~
T3 消除游戏:
提答QAQ,果断弃疗~
Day 2 T1 动物园:
题意已经讲了这题怎么做吧。。。KMP即可
T2 随机数生成器:
还以为很难呢。。。先模拟出整个矩阵,然后就是怎么放的问题了。因为要求排序后字典序最小,所以我们肯定是1,2,3...n*m这样枚举过来的,注意到每次选一个数就相当于它右上角和左下角的那两个矩阵里的数都不能选了,所以我们维护left[i],right[i],up[i],down[i]分别表示i这一行左边到哪不能选,右边从哪开始不能选,i这一列上面到哪不能选开始,下面从哪开始不能选,脑补一下就好了。BZOJ上很坑的,竟然会PE,最后一个空格不要输出。。。
T3 购票:
害怕,好像是道很好的题,但我不会~(≧▽≦)/~啦啦啦