0
点赞
收藏
分享

微信扫一扫

【省选模拟】20/02/11

​​题目 【省选模拟】20/02/11_前缀和

  • 感觉最近智商好低,【省选模拟】20/02/11_前缀和_02写的正解被自己送成了【省选模拟】20/02/11_生成树_03分,然后一直推【省选模拟】20/02/11_生成树_04根本没有检查【省选模拟】20/02/11_前缀和_02然后【省选模拟】20/02/11_复杂度_06的暴力也没有打,最后群上催着收卷草草交卷成功爆炸
  • 在家里【省选模拟】20/02/11_生成树_07也要讲究策略, 该打的暴力要打,该拍的题要拍
    非常时期不能因为在家里考试就耍水偷懒!

题解:

  • T1:注意到如果确定一个中心点过后,我们可以通过双指针扫一遍来看有多少个孤立点,如果孤立点个数【省选模拟】20/02/11_复杂度_08 那么这个中心点是合法的
    首先判掉 【省选模拟】20/02/11_前缀和_09 的情况(无穷多个),那么现在中心点至少是某两个点的中点
    那么我们可以 【省选模拟】20/02/11_复杂度_10 枚举 【省选模拟】20/02/11_生成树_11 判断
    考虑一些中点可以直接 【省选模拟】20/02/11_生成树_12 掉, 那就是左倾和右倾的中点
    我们规定除去孤立点外横坐标最小的点为 【省选模拟】20/02/11_前缀和_13,中间点为 【省选模拟】20/02/11_复杂度_14,除去孤立点外横坐标最大的点是 【省选模拟】20/02/11_前缀和_15,那么必须满足 【省选模拟】20/02/11_生成树_16 左边的点和 【省选模拟】20/02/11_复杂度_17 右边的点个数 【省选模拟】20/02/11_复杂度_08
    于是只有 【省选模拟】20/02/11_复杂度_19 【省选模拟】20/02/11_前缀和_20 个中间点,复杂度 【省选模拟】20/02/11_生成树_21
    【省选模拟】20/02/11_生成树_22
  • T2:考场居然在推容斥,其实这道题容斥十分不好看,我们可以直接计算合法的方案数
    那么显然有的 【省选模拟】20/02/11_前缀和_23【省选模拟】20/02/11_前缀和_24 表示到第 【省选模拟】20/02/11_生成树_25 排,【省选模拟】20/02/11_生成树_25 排保留的为 【省选模拟】20/02/11_复杂度_27 的点的概率,有转移
    【省选模拟】20/02/11_前缀和_28
    二维前缀和优化就可以得到 【省选模拟】20/02/11_生成树_29 分,考虑继续优化,我们令
    【省选模拟】20/02/11_前缀和_30【省选模拟】20/02/11_生成树_31
    那么我们直接考虑 【省选模拟】20/02/11_生成树_32 的转移,令 【省选模拟】20/02/11_前缀和_33【省选模拟】20/02/11_生成树_34 的前缀和,【省选模拟】20/02/11_复杂度_35【省选模拟】20/02/11_复杂度_36 的后缀和,合法的转移是一个矩阵的右上角,那么我们可以写出
    【省选模拟】20/02/11_复杂度_37
    那么需要维护 【省选模拟】20/02/11_复杂度_38 的前缀和,【省选模拟】20/02/11_前缀和_39 的前缀和,【省选模拟】20/02/11_复杂度_36 同理讨论即可
    复杂度 【省选模拟】20/02/11_复杂度_41
    【省选模拟】20/02/11_生成树_22
  • T3:首先最后的生成树边一定都是两个生成树上的边,那么我们对二者都求一遍最小生成树
    考虑当 【省选模拟】20/02/11_前缀和_43 很小时,最后的生成树全部是第一棵树上的边,随着 【省选模拟】20/02/11_前缀和_43 的增大将会有一些替换
    那么我们可以令当前生成树为第一棵树,然后将第二棵树上的边按从小到大加入,那么当 【省选模拟】20/02/11_前缀和_43 足够大时,它将替换当前树上的链上最大的第一棵树的边,我们可以求出这个 【省选模拟】20/02/11_前缀和_43 的下届
    按下届排序,二分就可以知道最后选了哪些边,链上最大,【省选模拟】20/02/11_复杂度_47【省选模拟】20/02/11_生成树_48 解决
    复杂度 【省选模拟】20/02/11_复杂度_49
    【省选模拟】20/02/11_生成树_22


举报

相关推荐

0 条评论