zoukankan      html  css  js  c++  java
  • BZOJ十一月月赛

    考场上做第一题做了(4)小时(T)飞了,结果发现被(GCD)卡了,只能再回来(看着题解)补题了;

    (A)

    (ans=frac{sum[r] - sum[l-1]}{r - l + 1}), 能够发现是个斜率模型,可以维护一个下凸壳,在凸壳上二分答案就好了;

    (B)

    设第j轮到了i号点时的概率(P_{ij}​);

    [P_{i0} = frac{d_i}{2m}; ]

    对于与(i)相连的点(u)

    [P_{i1} = sum_u{frac{d_u}{2md_u}} = frac{d_i}{2m} ]

    所以无论过了多少轮到这一点概率都是一样的

    直接(O(n))计算答案即可;

    (C)

    [F_i = max(F_i, {sum_i} xor {sum_l} + sum_l) (0 <= l <= i) ]

    分位考虑,发现当(sum_i​)的第j位为(1​)是,(l​)无论如何取这一位都是(1​)

    反之只有(sum_l)第j位为(1)时才有贡献(1<<(j + 1)),否则无贡献;

    这时可以贪心地预处理(dp[i])(sum[l])包含i状态下最小的(l),选取(1,0)的时候用(dp)贪心即可;

    (D)

    待补

    (E)

    直接写一个(gen)打表即可;

    (F)

    容易想到状压(DP),但要分(m)的奇偶性讨论;

    (m)为奇数时,不需要考虑对坐的情况,可以设(dp(i,j,0/1,0/1)),表示当前考虑到第(i)位为状态(j)时第一位选或不选,当前这一位选或不选;

    (m)为偶数时,发现当前及对面是只能取一个的,所以可以将这两个位置并在一起成为一个位置,这样转移就十分好想了,

    (dp(i,j,0/2,0/2)),选到第(i)组状态为(j)以及第一组和当前组的状态;

    转移都是枚举当前这一位选什么;

    (G)

    十分巧妙的网络流建模,因为数字各不相同能够发现可以取到(LIS_a + LIS_b)这个上界;

    所以问题转化为删去一些数使得(a或b)(LIS)改变;

    对于(dp)值为1的向源点连边,(dp)值为(LIS)的向汇点连边,这样问题就是割去图中的一些点使得(S)(T)不连通;

    经典问题,拆点最小割即可;

  • 相关阅读:
    写在开篇——过往总结
    线程池原理实现
    MD5加密工具类
    跨域及jsonp
    四种xml的解析方式
    浅析正则表达式—(原理篇)
    用JavaScript添加选择按钮的背景颜色和juqery添加选择按钮的背景色
    怎么用JavaScript实现tab切换
    vue.js2.0:如何搭建开发环境及构建项目
    vscode如何用浏览器预览运行html文件
  • 原文地址:https://www.cnblogs.com/pbvrvnq/p/8242720.html
Copyright © 2011-2022 走看看