NOI2022省选挑战赛 Contest12
T1.
求平面内两两不相交的 矩形三元组个数 $ n <= 2e5$
一开始想着分类讨论,不过不是很可做,于是想了一下对于相交的矩形连边,不过没细想,就寄了
加入我们现在有一个很快的方式,对于原图的两个矩形如果相交就连一条边
相当于是求,这个无向图中,大小为3的独立集个数
考虑 选中的三个点 之间的边的数量,来求出ans
边数为0,即为答案
边数为3,为原图中三元环个数
边数为2,枚举每个点,然后相邻的节点选两个 减去 三元环个数
边数为1,枚举每个点,然后选一个点伸出去,然后在原图选一个点不与第一个选择点相交,最后方案数 - 2 就是1
最后 边数为0 = 总 - 3 - 2 - 1
最后只要统计,每个矩形,在原图中的 每个 度数之和即可
考虑对于一个矩形如何统计其 在新无向图里面的度数
考虑扫描线
有两类情况
令现在统计的是 now ,to是现在加进来的矩形
now的左边界先出现,那么只要在 to的左边界进去的时候,直接对左端点以及在里面的更新一下就好了
考虑将to加进去,即前面有的矩形数
考虑处理矩形——去重
可以考虑差分,就可以得到一个区间的覆盖矩形个数
即维护两颗线段树
一个维护整体加法
一个维护区间差分
然后就可以维护每个矩形的度数
T2.

sol.
没有问号,直接区间/状压dp做一下就好了
考虑有问号,就寄了
好像是之前正睿的一个加强版
之前正睿那个是 dp套dp随便搞搞
而这个就更高妙一点了
是直接在DFA上面考虑的
考虑虽然DFA的状态可以看成无限的
可以发现,在这个DFA上,很多状态都是可以相互到达的,所以就直接扬了
只用考虑长度为10的添加序列到另一个

浙公网安备 33010602011771号