2022.07.29 NOI模拟赛总结
1.时间安排
7:30~8:00
T1:推不对样例的DP题,数据范围还很小,应该是不可做的题。
T2:罕见地出了个交互,给出一棵二叉树,可询问两点父子关系,构造一个删除序列使得删除的点是它所在子树的父亲,\(n^2\) 很好做有30分。
T3:数据结构题,路径一次函数覆盖查交点,暴力需要大力分讨,有m=2000的数据可能能上树剖。
8:00~9:00
打完T2暴力后发现链可以直接魔改sort,随机数据都能跑过,调交互库用了比较久的时间,时间长不打交互题手生了。
9:00~12:30
打暴力的分讨打吐了,要讨论并行和交错两种情况,还要根据定义域判无解,用了1h左右。
想起来前几天做的sdoi2016染色那题,发现和今天的题模型一致,那题需要用李超线段树,这题只需要支持区间覆盖就行,普通线段树强行维护。
细节调吐了/tu。
一开始没考虑到轻重链切换的函数值,查了很久才查出来,之后因为线段树懒标记的问题各种调,到11:30才过了自己造的数据。
魔改大样例测试,发现卡常/tu。
不知道自己抱着什么样的心态坚持卡完了,但是不开O2需要3s左右。/tu/tu/tu
就剩十几分钟了,啥都干不了了,开摆。
result:
T1:/ T2:30 T3:37
2.总结
T1:
人均切,只有我不会DP的世界达成了。
设 \(dp[i][j]\) 表示用i个水果测j次能测出的最大高度。
转移式: \(dp[i][j]=dp[i-1][j-1]+dp[i][j-1]+1\)。
暴力做,复杂度 \(O(nm)\)
主要是根本没给T1分配时间,一干T3就是3个小时,太亏了,输麻了,有充足时间的话这种DP还是能做的。
T2:
std::sort是什么垃圾,直接把询问次数爆了。
std::stable_sort大法好,直接少了10倍询问次数。/kk
正解看不懂。
(待upd)
T3:
%J神切,自己拿了第二高分也不错,3个小时没白费。
与正解很接近,没找到性质。
性质:
把同一个重链(轻链)上的所有一次函数(自变量为时间,因变量为距离)取出来,拆成起始点和终止点加入序列,按横坐标排序,再加入以当前自变量截出来的因变量排序的multiset中,是终止点就删除,会发现最优的交点一定是加入时相邻的和删除时相邻的。
画图就可以看出来,口胡题解就不证了。
直接做就行,复杂度O(nlog^2n)。
这种结论真不好想,没见过类似的模型。

浙公网安备 33010602011771号