NOIP模拟83

T1:

  套路题,考虑处理树上路径的几种方法

  树链剖分与点分治适用范围较广,新学习的重构树

适用于解决路径极值问题,这道题显然可以用树链剖分

  考虑问题转化为如何判断路径点集,能够想到无序

哈希,树状数组维护即可

  注意模数要大于字符集

这道题考场处理的较好,在50min完成码+调+拍+查。

T2:

  目前只会部分分,正解为可撤销并查集+线段树分治

这道题考场处理的不好,花费了一些时间纠结打T3部分

分还是卡常,最终选择打T3部分分(正确选择),考场

上遇到类似情况一定要先把能拿的分拿完在思考部分分

与正解

  对于自定义STL容器,重载运算符时一定要注意重载

所有元素的比较,避免出现之比较一维导致错误

T3:

  部分分很好想,考虑期望转化为每一点对的贡献,

即概率,裸式子。

  对于不存在-1的部分分,考虑是显然的CDQ分治,

注意使用归并排序可以降低log复杂度,原理在于归并

过程中左右两侧分别有序,于是单调指针维护,在回溯

过程中顺便维护即可

  正解拓展性并不大,本题只能当做思维题

  考虑本题偏序的特点,即三维偏序相同,考虑将其

拆解为二维偏序的O(nlogn)复杂度,即考虑分别对三组

做二维偏序,考虑对于两个数,其三维一定偏两序或三

序,前者会造成一次贡献,后者会造成三次贡献,因此

我们求三组偏序和减去点对数再除以二即为偏三序的情

况。

  仔细思考可以发现,若求偏二序则不能使用此方法,

而二维偏序的完全没有必要,相比之下,战神的解法普

适性更强,考虑容斥原理,子集容斥即可,尽管对于此

题而言实现较为复杂,然而实用性显然更强

posted @ 2021-11-12 19:21  HZOI_LYM  阅读(30)  评论(0编辑  收藏  举报