联合省选2023

火车站

显然可行当且仅当轨道连续且存在以其为对应方向端点的轨道

差分判定即可,时间复杂度为O(n+m)


城市建造

GE|V|个连通块当且仅当V中的点两两不连通,则:

  • EV的导出子图(V内部的边需被删除)

  • 对于路径a0,a1,...,ak,若a0,akV,则aiV(否则显然连通)

    在此基础上,若某个点双内选了两个点,则所有点均需选择

建立圆方树,问题即选择一个连通块,满足"外围"均为圆点,且删除所有方点后连通块大小合法

枚举连通块大小集合,两个问题即分别形如{s}{s,s+1}(后者还需容斥减去前者)

  • 对于前者,显然要求sn

  • 对于后者,假设分别有xy个连通块大小为ss+1,则s(x+y)+y=n

    k=x+y,则skn(s+1)k,即s=nknk1(当kn时)

不论哪种情况,均仅有O(n)种,可以暴力枚举

此时,在最顶端的方点上统计答案,则:

  • 对于圆点,由该圆点是否选择,剩余方点数为0sz

    前者方案唯一,后者方案数即所有儿子"剩余方点数合法的方案数"乘积

  • 对于方点,儿子中sz>s的仅能取0sz<s的仅能取szsz=s的至多取一个

    本质不同的方点数仅O(1)种,并分别贡献向答案和"剩余方点数合法的方案数"即可

时间复杂度为O(nn),需要一定卡常


人员调度

不妨钦定有贡献的员工,结合Hall定理,即要求以k为根的子树内不超过szk

维护当前所选的员工,加入时找到第一个不满足限制的祖先,并删去其子树内最小值即可

树剖+线段树维护差值,线段树分治实现删除,时间复杂度为O((m+k)log2nlogm)


过河卒

局面状态可以用两个OX的位置及操作方确定,共O(n3m3)

在此基础上,由边界确定结束状态后,显然有以下两种情况:

  • 能转移到某个"操作方必败"的状态,则"操作方必胜"且步数为上述的min+1
  • 能转移到的状态均为"操作方必胜",则"操作方必败"且步数为上述的max+1

同时,可以证明不能以此法确定的状态为平局

注意到步数均为+1,可以用拓扑排序+bfs的形式实现,时间复杂度为O(tn3m3)


填数游戏

Ti中的两数连边(相同看作自环),显然每个连通块独立,且有解的必要条件为点数边数

换言之,每个连通块仅有以下几种情况:

  • 基环树且基环为自环,则选择方式唯一,简单判定即可

  • 基环树且基环不为自环,则基环外选择方式唯一,基环上按方向有两种方式

    对于边(x,y),若Ax则选法1答案+1,填y则选法2答案+1,需最大化最小答案

    sx,sy,s为仅能填x/yx,y均能填的位置数,则答案即{s+sl+sr2|slsr|smin(sl,sr)+s|slsr|>s

  • 树,不妨任选一点为根建树,则枚举其中未被选择的数k后,选择方式唯一

    对于边(x,y)(其中x为父亲),若Axky子树内时答案+1,填yky子树外时答案+1

    确定仅能填x/y的位置后,考虑决策x,y均能填的位置——

    若两个节点无祖先-后代关系且均选子树内,显然不如均选子树外优

    在此基础上,选子树内的节点为从根出发的一条链,暴力枚举并简单维护即可

时间复杂度为O(n+m)


染色数组

参考这里

posted @   PYWBKTDA  阅读(826)  评论(5编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示