zoukankan      html  css  js  c++  java
  • 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)

  • 相关阅读:
    路由控制
    NodeJS -Express 4.0 用include取代partial
    工程的结构文件
    Express 框架的安装
    iconfont阿里爸爸做的开源图库
    12.文件系统fs
    11.事件驱动events
    10.Node.js核心模块
    Apache CXF实现Web Service(2)——不借助重量级Web容器和Spring实现一个纯的JAX-RS(RESTful) web service
    Apache CXF实现Web Service(1)——不借助重量级Web容器和Spring实现一个纯的JAX-WS web service
  • 原文地址:https://www.cnblogs.com/gmh77/p/14686636.html
Copyright © 2011-2022 走看看