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 @   After_rain  阅读(108)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示