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的添加序列到另一个

posted @ 2022-04-02 19:48  After_rain  阅读(119)  评论(0)    收藏  举报