这段时间天天降智,于是开始刷CF了。
CF1710A Color the Picture
伞兵构造。
不难发现可行的图形的颜色块一定是矩形,对于所有颜色放置的底边是$n$还是$m$进行分类讨论,直接算即可。
贴一下代码,之前vp
挂惨了。
1 |
|
CF1710B rain
离散化,数学。
神秘题(没见过),首先有一个结论:水量最大的点一定是降雨点。
证明: 对于任意相邻的降雨点$x,y ,\ x < y$,对于他们之间的任意点$pos$,显然$pos$水量最大时$x$和$y$都必须要对$pos$有贡献,那么:
$$
val_{pos}=val[x] - pos + x + val[y] + y - pos = val[x] + val[y] + y - x
$$
显然等于降雨点的水量。
于是我们考虑首先处理出所有降雨点的水量,降雨的式子是个一次函数,我们考虑用差分来计算,最后考虑如何验证每个点,我们考虑转化,我们重新定义一张图,这张图上的所有点的水量都是$m$,我们在原图上撤去降雨就等价于在新图上降水,而当新图和$x$轴所形成的图形可以完全将原图和$x$轴形成的图形覆盖掉,则撤去这个点就是合法的,否则不行。
然后我们考虑几何法,将图形画出来时,可以发现每个最高点到左右的两条线的斜率的绝对值都是$1$,所以我们用截距表示点,预处理出原图的截距的并的范围,如果新图的截距的范围覆盖了原图,则可行,反之不行。
注:计算原图截距的并的时候只用计算点值大于$m$的,正确性显然。
复杂度:$O(n \log n)$,瓶颈在离散化上。
1 |
|
CF1710C XOR Triangle
数位dp
,数学。
直接记录此时满足三边都行即可。
1 |
|
CF1628C Grid Xor
比较牛逼的构造题,首先猜想每个a[i][j]
对b
的异或值只可能贡献,或者非贡献(意思是不可能出现别的值),我们强行构造这样一种矩阵,记c[i][j]
为a[i][j]
是否贡献,那么由于a[i][j]
是由四周贡献来的,所以c[i][j]^c[i-2][j]^c[i-1][j-1]^c[i-1][j+1]=1
(a[i][j]
一定存在),对于第一行的话由于这是强行构造的,所以直接全赋一就行了。
CF1679A AvtoBus
垃圾题,分讨即可(还爆了两发罚时,菜成狗了)。
CF1679D Toss a Coin to Your Graph
二分,之后验证即可(看来实力也就CF2000
左右了)。