A. 梦境
没啥可说的原题....
贪心题的常见套路我们坐标以左端点为第一关键字,右端点为第二关键字
然后对于每个转折点,我们现在将梦境中左端点比他小的区间放进$multiset$里
然后找最近的右端点,
然后没了......
思路总结:
1.贪心套路,坐标排序,最优性选择
2.再有原题一定要赶紧打
B. 玩具
大神题,我考场再也不敢肝期望了kukuku
定义三个数组
$dp_{i,j}$表示当前森林中有$i$个点,然后有$j$个点在第一棵子树的概率
$f_{i,j}$表示当前树有$i$个点,深度小于等于$j$的概率
$g_{i,j}$表示当前森林有$i$个点,深度小于等于$j$的概率
然后我们开始转移意淫
首先$dp_{i,j}=dp_{i-1,j-1} imes inv_{i} imes (j-1)+dp_{i-1,j} imes inv_{i} imes (i-j)$
后面的$ imes (i-j)$是因为有单独成树的情况
然后$f_{i,j}=g_{i-1,j-1}$这是直接转移的,因为只能这样连啊.....
对于$g_{i,j}=sum_{k=1,n} f_{k,j} imes g_{i-k,j} imes dp_{i,k}$,
非常神仙的转移方程,我们让森林为一个子树和森林合成,枚举子树的点数,在乘上$i$个节点的树中第一个子树有
$k$的概率
C. 飘雪圣域
很值得反思的一道题,
考场推$T2$推到心态爆炸,$T3$没细心想想要用回滚莫队骗分,我数据结构学傻了吧..................
首先有个性质,联通块数等于点数减边数
所以考虑问题转化:
给定二元组$a,b$,问$L<=a<=R && L<=b<=R$的个数
做法很多
比较好实现的有
1.树状数组套$vector$
我们在树状数组中插入$a$,然后查询时在树状数组的每个节点中$lower\_bound$比$L$大的值
复杂度$O(nlog(n^2))$
2.莫队,
因为本题的特殊性,莫队可以$O(1)$转移
因为是树上的转移,我们可以记录每个节点的$sum_{x}$表示节点的孩子数
同时记录他的父亲,仔细想想可以$O(1)$转移
3.主席树
这个我没打......我好像太懒了.....