北京Day6

杂题选讲

一部分构造的思路在于 : 因为限制不是那么严格 , 我们先放松一些条件使得问题可以做 , 然后再构造 .

A

容易做 \(2^k\) 相等 , 我们搞前 \(2^k\)\(2^k\) , 操作次数线性对数.

B

考虑每次增加一对传送门 , 可是传送门后面的东西会对前 面产生干扰 , 所以我们直接把传送门按 1 层 , 2 层...建 , 把后面的贡献挂到前面了 .

相当与每次交换两行/列 规约到子问题.

C

用到开头提到的思想 , 考虑修改一个值会同时修改行列 , 我们默认列全部递增去做行 , 做行贪心做一圈 , 做列枚举n的大小 , 找一个目前递增小于x的最大n再贪心 .

E

mc 题 , 考虑有一些夹到最里面的东西比较不可做 , 我们把周围一圈的边线上的元素抻出来 , 这样问题又规约成了一个都小一圈的子问题 , 不断规约成知道最小 , 完了每层填满元素就可以了 .

H

先交换贪心一下 , 发现选半个+半个一定不如选整个 , 所以我们枚举那个半个的 , 对于其他的相当于少了该点的背包 , 我们直接分治不包含区间的背包 , 这样就把进出背包个数为 log 个 , 这个trick貌似叫缺零分治

I

一个性质 : 如果能先与一定先与 , 因为与完变小 , 加完变大 , 拿三个数模拟一下就发现一个 \(\le \min\) , 一个 \(\ge \max\)

肯定从高到低贪心 , 如果1的个数小于集合个数 , 我们肯定把 1 摊开 ; 如果大于 , 我们把 0 缩到一起 , 也就是说 , 我们要把 1 尽量摊开.

posted @ 2025-12-18 21:30  2019yyy  阅读(11)  评论(1)    收藏  举报