0
点赞
收藏
分享

微信扫一扫

图论好题集锦 (19/10/21)

_LEON_ 2022-07-12 阅读 67

前言:主要练了一些最短路,网络流,数据结构优化建图,感性理解了二分图 图论好题集锦 (19/10/21)_最小割 定理

HDU 5503
图论好题集锦 (19/10/21)_最短路_02 支球队,每两支球队之间都会有一场比赛,没场比赛胜利记1分否则记0分,给出这N支球队的分数,问能否构造出每场比赛的结果,使得最后的分数成立?
解:首先可以球队向原点连 图论好题集锦 (19/10/21)_最短路_03 的边,比赛向两个球队连边,跑网络流看合不合法
考虑将一个球队拆成 图论好题集锦 (19/10/21)_最短路_03 个点,比赛依次连边,将比赛作为 图论好题集锦 (19/10/21)_最小割_05 集合,球队作为 图论好题集锦 (19/10/21)_主席树_06 集合
当且仅当存在完美匹配时数据合法
根据二分图 图论好题集锦 (19/10/21)_最小割 定理,图论好题集锦 (19/10/21)_最小割_05 中的任意 图论好题集锦 (19/10/21)_最短路_09 个点,与 图论好题集锦 (19/10/21)_主席树_06 中的点至少有 图论好题集锦 (19/10/21)_最短路_09 对联通时存在完美匹配
我们可以枚举 图论好题集锦 (19/10/21)_主席树_06 中的 k 个球队,那么在 图论好题集锦 (19/10/21)_最小割_05 中会有 图论好题集锦 (19/10/21)_最小割_14 个点
那么对于这 图论好题集锦 (19/10/21)_最短路_09 个点,需要满足 图论好题集锦 (19/10/21)_主席树_16 ,于是排序取最小的 图论好题集锦 (19/10/21)_最短路_03 即可

POJ 3613
图论好题集锦 (19/10/21)_最小割_18 快速幂,最开始的矩阵表示 图论好题集锦 (19/10/21)_最短路_19图论好题集锦 (19/10/21)_最小割_20 经过一条边的最短距离,乘一次就相当于多走了一条边

BZOJ 3693
应该规到数据结构,但写都写了就算了
首先可以暴力 图论好题集锦 (19/10/21)_最短路_21 建图判一下有没有完美匹配
根据二分图 图论好题集锦 (19/10/21)_最小割 定理,对于任意区间 图论好题集锦 (19/10/21)_最短路_23 如果对包涵的区间的 图论好题集锦 (19/10/21)_最短路_03 求和
需满足 图论好题集锦 (19/10/21)_主席树_25
显然只有在原区间左右端点上的图论好题集锦 (19/10/21)_最小割_26才有用
于是转换为,对于任意区间 图论好题集锦 (19/10/21)_最小割_27,需要满足 图论好题集锦 (19/10/21)_主席树_28
也就是 图论好题集锦 (19/10/21)_主席树_29
图论好题集锦 (19/10/21)_主席树_30 排序,线段树对于每一个 图论好题集锦 (19/10/21)_主席树_31 维护 图论好题集锦 (19/10/21)_最短路_32
考虑每次添加一条线段的影响,对于 图论好题集锦 (19/10/21)_主席树_33图论好题集锦 (19/10/21)_最小割_34图论好题集锦 (19/10/21)_最短路_03 的贡献
线段树区间加,区间 图论好题集锦 (19/10/21)_最短路_36 即可

BZOJ 2259
题意:一个序列 图论好题集锦 (19/10/21)_最短路_37,每次从 图论好题集锦 (19/10/21)_主席树_38 跳到 图论好题集锦 (19/10/21)_最短路_39,要求刚好跳到 图论好题集锦 (19/10/21)_最短路_40,可以对图论好题集锦 (19/10/21)_最短路_03修改,代价为修改的绝对值,问最小代价
完全看不出是最短路…
发现 图论好题集锦 (19/10/21)_主席树_38 跳到 图论好题集锦 (19/10/21)_最短路_39 是免费的,等价于 图论好题集锦 (19/10/21)_主席树_44,建边权为 0 的边
调整考虑一个一个调整,图论好题集锦 (19/10/21)_最小割_45 建边权为 1 的边
如果 图论好题集锦 (19/10/21)_最小割_46,那么向 图论好题集锦 (19/10/21)_最短路_40 连边权为 图论好题集锦 (19/10/21)_主席树_48 的边
求出 1 到 n + 1 的最短路即可
没想到最短路也有建模,将代价抽象到边,最短路即是最小代价,妙啊!

BZOJ 2143
挺妙的一道题
考虑我们不直接记录跳到哪,我们到一个点,如果要跳,就给它记一个"能量"
一个能量可以走一格,而要跳等价于能量加上 图论好题集锦 (19/10/21)_最短路_49
考虑如何处理不跳满的情况,发现可以让它自己不动
接下来就有两种做法,一个是每种能量建一层图,就可以无脑分层图
一种是 图论好题集锦 (19/10/21)_最短路_50图论好题集锦 (19/10/21)_主席树_51 表示到 图论好题集锦 (19/10/21)_最小割_52 能量为 图论好题集锦 (19/10/21)_最短路_09 的最短路,类似 图论好题集锦 (19/10/21)_主席树_54 用堆维护最大转移
枚举每个点为起点跑一次即可
转换的思想特别巧妙

BZOJ 2400
题意:有一些点的点权确定,你需要确定剩余点权,使整个图的权最小,图的权为相邻两点异或和的和
图权最小时需点权和最小
首先位与位是互不干扰的,按位处理
题目转换为,把点分为 图论好题集锦 (19/10/21)_最短路_55 集合,只有 0 / 1 之间的边有贡献
是一个最小割的模型
令原点为 1 集合,汇点为 0 集合,原点向这一位为 1 的连边,这一位为 0 的连向汇点
边权为 图论好题集锦 (19/10/21)_最短路_56,强制不能割
对于原图上的边 图论好题集锦 (19/10/21)_最小割_57,连边 图论好题集锦 (19/10/21)_主席树_58,表示正反都可以割
求出最小割即是第一问
第二问怎么办,发现这样求出来后与 图论好题集锦 (19/10/21)_主席树_59 联通的已经是最小点集,也就是说 1 的个数最小
从原点开始 图论好题集锦 (19/10/21)_最短路_60 即可

UOJ 77
好题
首先,分配黑白,应该是最小割的模型
考虑先令答案为 图论好题集锦 (19/10/21)_主席树_61,要让减去最小割为答案
原点向每个点连边,边权为 图论好题集锦 (19/10/21)_主席树_62,如果割掉表示选白,此时不需要考虑为黑的限制
每个点向汇点连边,边权为 图论好题集锦 (19/10/21)_最小割_63,如果割掉表示选黑,此时要考虑限制
限制为对于任何满足条件的 图论好题集锦 (19/10/21)_最短路_64图论好题集锦 (19/10/21)_最短路_64 如果要选白,也就是割黑,就要额外付出 图论好题集锦 (19/10/21)_主席树_66 的代价
最小割建图的一个经典模型就是连一些为 图论好题集锦 (19/10/21)_最短路_56 的边强制选 / 不选
你要割黑是吧,老子让你只有割了黑就必须割 图论好题集锦 (19/10/21)_主席树_66,否则就让你娃跟汇点联通
容易想到先建一个虚点 图论好题集锦 (19/10/21)_主席树_69图论好题集锦 (19/10/21)_主席树_38图论好题集锦 (19/10/21)_主席树_69 连边权为 图论好题集锦 (19/10/21)_主席树_66 的边
你割黑就让你联通,等价于从 i 走到 j 走出一条增广路,图论好题集锦 (19/10/21)_主席树_69图论好题集锦 (19/10/21)_最短路_64图论好题集锦 (19/10/21)_最短路_56 的边即可
观察题目限制,想到主席树优化建图
有一个坑点是一个权值有多个点,主席树上的点要向这些点连边
我们不暴力连,向上一个叶子连即可

HDU 5420
想到了一道类似的题,不记得出处了
就是按深度建主席树,然后向 图论好题集锦 (19/10/21)_最短路_60 序区间 图论好题集锦 (19/10/21)_最短路_77 连边
因为 图论好题集锦 (19/10/21)_最短路_77 中没有在 u 之上的点,所以是对的
然后就是主席树优化建图,边数点数都是 图论好题集锦 (19/10/21)_主席树_79

NOI 2009 植物大战僵尸
最大权闭合子图模型
关于最大权闭合子图,就是说你选了一个点,它能到达的都必须选,问选出来的子图最大是多少
原点向点权为正的连边,点权为负的向汇点连边,边权为绝对值,原图上的边边权为 图论好题集锦 (19/10/21)_最短路_56,表示割不掉
点权为正的点权和 - 最小割即为答案,因为要么割正的,要么割负的,割正的表示不选这个点,要减掉
割负的表示选了这个点,同样要剪掉它的值
这道题就是这样一个模型,因为要打死一个植物,必须打死保护它的植物
有一个问题就是当存在环时,环和环保护的点是打不死的,于是可以将网络流的图反过来拓扑排序,只建标记的点即可

BZOJ 2654
已经玩烂的经典题
类似 图论好题集锦 (19/10/21)_最短路_50 凸优化,可以将白边加上一个值,判断最后选出来的个数
如果多了,就把加的调小,小了就把加的调大,最后的答案就是生成树权值 -
有一个坑点:权值相同时优先选白边


举报

相关推荐

0 条评论