Morituri te salutant

VP记录

预计在最后的日子里适量VP

简单记录一下


CF 1037

Link

上来秒了ABCD,很快啊

A是二进制拆分,B是一眼贪心,C是一个非常简单且好写的dp

D把边遍历顺序按照所需的bfs顺序排序,最后比较一下现在的BFS序和原来的是否相同即可

E稍微想了一会儿,大意是求最大连通子图,满足每个点的度数大于等于 \(k\) 的图的大小,动态加边

考虑正向加边很难维护,于是正难则反

先处理好加上所有边的情况,然后依次删边删点

这就很好维护了

接下来就是苦痛时刻了,对着F瞪了一个小时想了一堆假算,甚至已经准备搬ds了,最后15min才想到正解,可惜来不及写了

结束后又花了1个多小时才写加调好,实际上只有20行。。。

被加一减一绕来绕去,还有整除什么的

调了好久才调过去

这种带点数学性质的题目我是真写不来。。。

好像忘了说解法了,考虑分开计算每个点在最终答案中的贡献

容易发现,对于每一个位置\(i\),它和 \(i+k\) 的贡献有非常大的相似性(只是在每次取max的时候多了一段\([i,i+k-1)\)的区间而已)

然后从后往前对于每一组模 \(k\)同余的一起算贡献即可


CF1450

折磨场

场上只会ABD

D还是猜了一个二分的性质才过的

AB不讲

C1:将每个点\((i,j)\)给一个编号为\((i+j) mod 3\),显然编号只有3种,容易发现答案中必然保证3种编号都有,把编号出现次数最少的全部改成最多的就行,出现次数最少的必然满足题目的三分之一限制

C2:基本同C1,容易发现必然有一种编号的棋子,数量不少于总棋子的1/3,把剩下的两种编号对于X和O分别全部改掉即可,实现时可以直接枚举

D:观察样例,容易猜出除了\(k=0\)的情况下,剩下的\(k\)满足二分性质,写个二分加暴力check即可

E:首先考虑根据题目限制,一条边的两个点必定奇偶性不同,这样子就满足了要求的\(a_i \ne a_j\),然后条件就变成了\(-1<=a_i-a_j<=1\),就可以上差分约束了,最后取极差最大的点为原点即可

F:以相邻的数相同为界分段,容易发现段内的数完全没有用,只有端点有用,考虑贪心的让出现最多的端点放在开头,显然答案就是max(段数-1,最大的端点出现次数-2)


CF1214

属于是巨大失误场

ABC不讲

D是个可爱的搜索题,很经典,细节有点多,WA了几发才过

然后是折磨人环节

开场认为自己不会E的构造去看F

然后在离正解一步之遥的地方把自己限制住了

甚至连SA都掏出来了

最后没办法回去写E

一眼秒了,但是没看清数据范围

导致枚举顺序反了。。。最后EF皆失,标准小丑行为

E:考虑把所有的 \(2i-1\) 先拉到一条链上,按照 \(d_i\) 排序从大到小,不断往后放,能放链尾就放链尾,否则就放在链上,由于 \(d_i<=n\) 这样子构造必然可行。(场上一直以为\(d_i<=2*n-1\)。。。属于是属于是了)

F: 先把人和办公室按坐标排个序,容易发现一定是依次对应最优,问题在于对应的起点。本来答案是个折线不支持三分,但如果我们把\(a_i\)(或者\(b_i\))复制三份,一份 \(-n\) ,一份 \(+n\) 。(断环成链,然后左右都取),我们就可以把答案中的取\(min\)和绝对值都去掉,并依然保证最优答案能取到,并且此时答案可以三分,然后三分就好了

H:首先如果\(k \le 2\)一定有解,对于剩下的 \(k\),容易发现,当存在3个点的两两距离 \(\ge k\) 时,必定无解。将树的直径拉出,并给每个点记录下其不包含直径方向的最长链与次长链即可判断是否有解,使用3遍dfs即可(2遍求直径,1遍求长链次长链+判断)

接下来的染色反而简单,先给直径填好,再取直径的中点,在其上方的点对于非直径上的子树从上往下依次递减填色,在其下方的点对于非直径上的子树从上往下依次递增填色。

posted @ 2022-11-02 11:44  shight  阅读(36)  评论(0编辑  收藏  举报