• GDOI/联合省选2021题解


    D1T1

    枚举左边界,对于a<b的初始不翻,a>b的按a贪心翻,在扫的过程中会把一些a<b和一些翻了的a>b(按b排)强制翻转,如果m不足就把翻了的a>b按a排序翻回去

    一定不存在m+1后再主动翻的情况,因为翻了(a,b)后前面的a翻了没用,后面的全翻完了否则不会到当前a,所以不用考虑

    D1T2

    硬点1行1列为0,则剩下方案唯一,接着用行/列间隔加减即可构出所有合法解,因为可以把任意一组合法解通过操作把1行1列变为0,即得到了初始状态,反之亦然

    接着差分约束判断

    D1T3

    直接算,点y能被x算到的充要条件是xy强连通且存在环使得最小点>y,如果上面有点u<y由于xu强连通所以u会先被删,因此必须要有>y的环,存在的话显然不会在y之前删掉,在正反图上跑

    考场直接用桶来搞dij,时间O(nm),由于用了vector所以很慢

    实际上每次新加一条边然后bfs,这样一次是O(n+m)总O(n(n+m)),由于跑不满所以可以过

    D2T1

    向c-1/c+1的祖先连边,每次倍增判断,由于不好确定长度所以写了整体二分+暴力来确定每个询问,log^2

    实际上直接点分然后维护f[i]表示i往上跳的min即可一个log

    D2T2

    差分,从小到大确定,则当前max确定后前面的+b操作与现在二者无关,只与初始的a有关

    所以设f[s,i,j]表示状态s,max为i和为j的方案,每次贪心卡到刚好成为max即可最优且不重

    时间O(2^n*m*n^2)

    D2T3

    先n^2建出支配树,则原图上的边一定是往下/返祖/终点在lca下一

    所以新加x->y后变化路径一定是1->x->y->u且不经过u的父亲,大力讨论后(lca外、lca其他子树)发现充要条件是dp[lca]+2<=dp[u],dp是支配树上深度

    然后可以类似D1T1 nm分层bfs预处理,qlog询问,总O(nm+qlog)

  • 相关阅读:
    git让线上代码强制覆盖本地的
    redis连接时报错:Could not connect to Redis at 127.0.0.1:6379: Connection refused
    Apache使用内置插件mod_php解析php的配置
    Apache2.4+PHP7.2配置站点访问变下载
    Linux下查看某一进程所占用内存的方法
    SNMP监控一些常用OID的总结
    kafka 生产消费原理详解
    HttpServletRequest接收参数的几种方法
    【转载】idea 2018注册码(激活码)永久性的
    SecureCRT & SecureFx 绿色破解版
  • 原文地址:https://www.cnblogs.com/gmh77/p/14686636.html
Copyright © 2020-2023  润新知