2022.05.18NOI模拟赛总结
(第一次校内IOI赛制的比赛,流泪小企鹅.gif)
1.时间安排
7:00~7:20 看题面
T1:树上统计,很有点分治的味道,有15分模拟和35分的链可以写。
T2:DP题,可能需要处理环上问题,n=2000有40分。
T3:一眼费用流,不过n=1000可能跑不动,要用些优化建图的trick。
T4:应该是FWT这类的,感觉不是很好做,有30分预处理。
7:20~8:00
链上分类讨论有亿点麻烦,用了个单调栈加上一堆计算,不过还是写出来了。
8:00~10:30
光速写完暴力费用流,果然只有80分,1000的数据T飞了。
一开始觉得没法优化(因为有绝对值),后来一想可以分类讨论,于是把每个点拆成4个,分正负两路最后合并,分后面大于前面和小于前面两类用两棵主席树建图,理论复杂度应该是能过的,但是交上去还是80分。
加上了各种优化,包括SLF,炸点等等一堆奇怪的东西,还是跑不动,开始怀疑不是常数的问题。
一想,似乎不需要拆4层,只需要三层,第一层点向第二层连2倍边权,第二层向第三层连负权,同时走一条路,就能省一层点,然而还是过不去。
战术放弃,看T2。
10:30~11:30
先发现一个结论:一个方案总存在一种方法使得两两差值的绝对值之和最小,即把最大和最小相邻放,剩下的按升/降序依次摆放,这时这个方案达到最大价值。
于是就可以只枚举最大值和最小值,然后找C值在他们之间的V值前m-2大数之和即可。
因为没考虑答案会是负数,ans初值设成了0,调了半个多小时,后来主席树写挂又被迫改成堆,不过40分还是过了。
11:30~12:00 吃饭
12:00~12:30
赶紧把T4的预处理30分写了,很顺利。之后不想思考T4的50分,继续改T3,仍然过不掉……
result:
T1:50 T2:40 T3:80(赛后在loj开O2AC了……) T4:30
(待UPD)

浙公网安备 33010602011771号