• 「10.15」梦境(贪心)·玩具(神仙DP)·飘雪圣域(主席树树状数组莫队)


    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.主席树

    这个我没打......我好像太懒了.....

  • 相关阅读:
    java从基础知识(九)I/O
    c++学习笔记(2)类的声名与实现的分离及内联函数
    转:给C++初学者的50个忠告
    c++学习(1)
    vim下缩进及高亮设置
    转载:c++ sort用法
    菜鸟成长记1,软件工程大一经历
    linux下挂载另一系统硬盘。
    OpenCV VideoCapture.get()参数详解
    opencv+python 添加文字 cv2.putText
  • 原文地址:https://www.cnblogs.com/Wwb123/p/11679280.html
Copyright © 2020-2023  润新知