【省选模拟】20/02/11

题目 p d f pdf pdf

  • 感觉最近智商好低, T 1 T1 T1 写的正解被自己送成了 10 10 10 分,然后一直推 T 2 T2 T2 根本没有检查 T 1 T1 T1 然后 T 3 T3 T3 的暴力也没有打,最后群上催着收卷草草交卷成功爆炸
  • 在家里 t e s t test test 也要讲究策略, 该打的暴力要打,该拍的题要拍
    非常时期不能因为在家里考试就耍水偷懒!

题解:

  • T1:注意到如果确定一个中心点过后,我们可以通过双指针扫一遍来看有多少个孤立点,如果孤立点个数 ≤ k \le k k 那么这个中心点是合法的
    首先判掉 k ≥ n k\ge n kn 的情况(无穷多个),那么现在中心点至少是某两个点的中点
    那么我们可以 N 2 N^2 N2 枚举 O ( N ) O(N) O(N) 判断
    考虑一些中点可以直接 b a n ban ban 掉, 那就是左倾和右倾的中点
    我们规定除去孤立点外横坐标最小的点为 ( x 0 , y 0 ) (x_0,y_0) (x0,y0),中间点为 ( x , y ) (x,y) (x,y),除去孤立点外横坐标最大的点是 ( x 1 , y 1 ) (x_1,y_1) (x1,y1),那么必须满足 x 0 x_0 x0 左边的点和 x 1 x_1 x1 右边的点个数 ≤ k \le k k
    于是只有 c h e c k check check k 2 k^2 k2 个中间点,复杂度 O ( k 2 n ) O(k^2n) O(k2n)
    C o d e Code Code

  • T2:考场居然在推容斥,其实这道题容斥十分不好看,我们可以直接计算合法的方案数
    那么显然有的 d p dp dp d p i , l , r dp_{i,l,r} dpi,l,r 表示到第 i i i 排, i i i 排保留的为 ( l , r ] (l,r] (l,r] 的点的概率,有转移
    d p i , l , r = p l ∗ p m − r ∑ j < r , k > l d p i − 1 , j , k dp_{i,l,r}=p_l*p_{m-r}\sum_{j<r,k>l}dp_{i-1,j,k} dpi,l,r=plpmrj<r,k>ldpi1,j,k
    二维前缀和优化就可以得到 60 60 60 分,考虑继续优化,我们令
    f i , r = ∑ l < r d p i , l , r f_{i,r}=\sum_{l<r} dp_{i,l,r} fi,r=l<rdpi,l,r g i , l = ∑ l < r d p i , l , r g_{i,l}=\sum_{l<r}dp_{i,l,r} gi,l=l<rdpi,l,r
    那么我们直接考虑 f , g f,g f,g 的转移,令 S f Sf Sf f f f 的前缀和, S g Sg Sg g g g 的后缀和,合法的转移是一个矩阵的右上角,那么我们可以写出
    f i , r = p m − r ∗ ∑ l < r ( S f i − 1 , m − S f i − 1 , l − S g i − 1 , r ) ∗ p l f_{i,r}=p_{m-r}*\sum_{l<r}(Sf_{i-1,m}-Sf_{i-1,l}-Sg_{i-1,r})*p_{l} fi,r=pmrl<r(Sfi1,mSfi1,lSgi1,r)pl
    那么需要维护 p p p 的前缀和, S f ∗ p Sf*p Sfp 的前缀和, g g g 同理讨论即可
    复杂度 O ( k + m n ) O(k+mn) O(k+mn)
    C o d e Code Code

  • T3:首先最后的生成树边一定都是两个生成树上的边,那么我们对二者都求一遍最小生成树
    考虑当 x x x 很小时,最后的生成树全部是第一棵树上的边,随着 x x x 的增大将会有一些替换
    那么我们可以令当前生成树为第一棵树,然后将第二棵树上的边按从小到大加入,那么当 x x x 足够大时,它将替换当前树上的链上最大的第一棵树的边,我们可以求出这个 x x x 的下届
    按下届排序,二分就可以知道最后选了哪些边,链上最大, l i n k , c u t link,cut link,cut L C T LCT LCT 解决
    复杂度 O ( n l o g ( n ) ) O(nlog(n)) O(nlog(n))
    C o d e Code Code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FSYo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值