zoukankan      html  css  js  c++  java
  • 省选模拟17

    A.选择

    题意:给定n个点m条边的无向图以及q个操作,支持删边和询问u到v是否存在两条不相交路径。max(n,m,q)<=1e5
    操作2实质上就是问u和v是否在同一个边双内(去掉任一边仍连通)。
    套路式时光倒流,变为加边。
    问题转化为:维护支持加边的动态边双。
    用并查集维护边双和连通性,最多合并n次,可以暴力合并。
    然而没有码,去找题了,所以也不知道yy的对不对。

    B.划分序列

    题意:给定长度为n的序列A,把A分成恰好非空K段,最小化段内和的最大值。1<=K<=n<=5e4,(|A_i|)<=3e4
    权值有正负,对于部分分。
    (A_i)>0,二分+check贪心求至少t,t<=K则满足
    (A_i)<0,二分+check贪心求至多t,t>=K则满足
    根据以上可以猜想可行的段数是连续的,至少L至多R,满足L<=K<=R则满足
    L和R可以dp出来,bit优化求前缀最值。
    猜想的正确性是可证的:
    从dp的角度,每次取的是最优,现在取次优,一直松弛下去,可以连续逼近K
    从构造的角度,段内正数会使答案变差,负数会变优。
    所以段数过少正数分不开,过多负数分开。

    D.圆圈游戏

    原题略

    最近要把矩阵树刷下w

  • 相关阅读:
    文件处理
    字符编码的了解以及简单的文件处理
    python list去重加set排序
    数据的类型以及内置方法
    Python 入门 Day5
    Python 入门 Day3
    Python的入门
    计算机硬件
    【0903 | Day 29】反射和内置方法
    【0902 | Day 28】绑定方法和非绑定方法
  • 原文地址:https://www.cnblogs.com/hzoi-yzh/p/12257617.html
Copyright © 2011-2022 走看看