2022.08.09 NOI模拟赛总结

1.时间安排

7:30~8:00

T1: 求网格图划分为若干宽为1的长方条的最小染黑边的数量,感觉是插头DP,没想出来暴力怎么写。

T2:给定n(n+1)的排列,求2n个位置满足这2n个数中第k大值和第k+1大值相邻(k是奇数),只会暴力和原序列有序的40分。

T3:求是p的超集和q的子集的所有下标的对应位置的数的和,有20分暴力,还有30分应该是根号分治。

8:00~8:30

打T2的暴力和特殊性质,手构数据没问题。

8:30~11:30

先打了T3的暴力,没啥问题。

思考如何根号分治,如果p和q不同的1数量小于10可以直接暴力,大于10的话需要预处理。

想了很久,感觉不可做。

到9:30左右突然脑出来一个伪二维子集卷积的东西,把220分为前10和后10分别前缀和,查询的时候分为pq的前10位和后10位以及p&q的前10位和后10位,根据二项式定理容斥合并。

按自己想的写完后,答案错炸了。

惊奇的发现,数据3 7算的是4 7的答案,1 5算的是4 5的答案,也就是莫名其妙算的是p对q补集的答案,不知道哪里的问题。

干脆将错就错,把p转成对q的补集,反正结果是对的就行。

跟暴力对拍没问题。

11:30~12:30

先打了个T1的暴力状压。

推了推轮廓线DP的转移,细节太多感觉调不出来。

然后去搞T2的模拟退火,反正没subtask。

但是写炸了,一直死循环,不知道为什么。

result:

T1:0 T2:40 T3:50(数据锅了)

2.总结

T1:

为了保证复杂度n<m时交换了n、m,但是对应的数组忘了翻转了……改后15分……

图论寄了,全都忘了。

55分轮廓线DP据写出来的大神们说讨论不算复杂,但是我是真不想再搞大力分讨的DP了(开摆)。

正解是最小割。

可以发现互成90度的相邻两条边至少染一条,于是就可以转化成最小点覆盖了。

源连横边,汇连数边,都没染色的相邻90度横竖边连边,跑最小割即可。

感觉时间充足还是能想出来的,只给不到1h时间思考太亏了。

T2:

首先考虑把原序列划分为n个有n+1个元素段,每段排序。

找出来所有段中次大值最大的,那么这次就选这个段的最大值和次大值即可,删去这个段,然后把所有其他段的最大值删掉。

重复n次,就可以找到这2*n个位置。

用set维护以上过程即可。

神仙构造题。

T3:

原题链接

之前考试还考过,对这题一点印象都没了。

不过自己能想出来那个离谱的根分也挺离谱的。

posted @ 2022-08-09 20:39  Displace  阅读(36)  评论(0)    收藏  举报