NOIP 模拟 四十

· · 个人记录

送花

固定住右端点,然后合法区间的修改就成了区间加减的操作,然后每次取最大值即可。

星空

首先转化坐标为x+y,x-y。

原始距离就是新坐标横纵之差取min。

显然可以排序求得最小值,然后将0压进一个并查集,对数就是两端集合大小的乘积。

注意map判重。

零一串

首先每一位1每一时刻动不动可以用01来表示,这样构成一个矩阵。

考虑矩阵如何转移,i到i+1,i在t可以i+1在t+1一定可以,于是整体右移。然后中间有多少0就是可以多动几步,将前k个0赋值成1。

只能维护0的相对位置,记录每个一移动了多少位。贡献可以用树状数组,0右移我也用了树状数组,O(n)我还不会。。。。