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)。

这种结论真不好想,没见过类似的模型。

posted @ 2022-07-29 21:57  Displace  阅读(38)  评论(1)    收藏  举报