「10.15」梦境(贪心)·玩具(神仙DP)·飘雪圣域(主席树\树状数组\莫队)
A. 梦境
没啥可说的原题....
贪心题的常见套路我们坐标以左端点为第一关键字,右端点为第二关键字
然后对于每个转折点,我们现在将梦境中左端点比他小的区间放进multiset里
然后找最近的右端点,
然后没了......
思路总结:
1.贪心套路,坐标排序,最优性选择
2.再有原题一定要赶紧打
B. 玩具
大神题,我考场再也不敢肝期望了kukuku
定义三个数组
dpi,j表示当前森林中有i个点,然后有j个点在第一棵子树的概率
fi,j表示当前树有i个点,深度小于等于j的概率
gi,j表示当前森林有i个点,深度小于等于j的概率
然后我们开始转移意淫
首先dpi,j=dpi−1,j−1×invi×(j−1)+dpi−1,j×invi×(i−j)
后面的×(i−j)是因为有单独成树的情况
然后fi,j=gi−1,j−1这是直接转移的,因为只能这样连啊.....
对于gi,j=∑k=1,nfk,j×gi−k,j×dpi,k,
非常神仙的转移方程,我们让森林为一个子树和森林合成,枚举子树的点数,在乘上i个节点的树中第一个子树有
k的概率
C. 飘雪圣域
很值得反思的一道题,
考场推T2推到心态爆炸,T3没细心想想要用回滚莫队骗分,我数据结构学傻了吧..................
首先有个性质,联通块数等于点数减边数
所以考虑问题转化:
给定二元组a,b,问L<=a<=R && L<=b<=R的个数
做法很多
比较好实现的有
1.树状数组套vector
我们在树状数组中插入a,然后查询时在树状数组的每个节点中lower_bound比L大的值
复杂度O(nlog(n2))
2.莫队,
因为本题的特殊性,莫队可以O(1)转移
因为是树上的转移,我们可以记录每个节点的sumx表示节点的孩子数
同时记录他的父亲,仔细想想可以O(1)转移
3.主席树
这个我没打......我好像太懒了.....
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步