图论网络流

1

给定一棵树,每次可以选一个叶子删掉。同时有 m m m 个限制 ( u , v ) (u,v) (u,v) 表示 u u u 必须在 v v v 之前删掉。求可能最后一个被删掉的点的集合。

如果有一个 u → v u\rightarrow v uv 的限制,那么以 v v v 为根 u u u 的子树都不能选。之后把不能选的点之间定向,加上限制的边,如果有环就无解,否则可以证明解就是剩下的点。

2

给定一个字符串集合,求字符集大小为 k k k 且不包含任何一个集合中串的“双向无限”字符串个数。如果有无限个输出 -1。
k ≤ 10 , 总 串 长 ≤ 100000 k\leq 10,总串长\leq 100000 k10100000

构建出字符串和字符集的 AC 自动机。判断 inf:
1.某个 scc 不是简单环;
2.某条路径经过三个不同 scc。
否则,一条合法的路径一定是从一个环出发,走一些路径,再到一个环。

3

有一个 w × h w\times h w×h 01 01 01 矩阵 A A A,和一个 ( w − 1 ) ∗ ( h − 1 ) (w-1)*(h-1) (w1)(h1) 的矩阵 B B B,满足 B i , j = A i , j + A i , j + 1 + A i + 1 , j + A i + 1 , j + 1 B_{i,j}=A_{i,j}+A_{i,j+1}+A_{i+1,j}+A_{i+1,j+1} Bi,j=Ai,j+Ai,j+1+Ai+1,j+Ai+1,j+1
给你矩阵 B B B,请给出一个满足条件的矩阵 A A A

添加辅助变量,每四个格子添加辅助变量表示哪些等于 0 0 0 ???

发现确定了第一行第一列和 A 11 A_{11} A11 之后,每个格子都可以由一坨 B B B 元素和两个 A A A 元素(该行第一个和该列第一个)算出。然后就是 2-sat 模型了。

田字格限制问题一般想一想确定了哪些东西以后解就是固定的了。

4

一棵树 m m m 对点,每次可以花费 1 1 1 的代价给一条边标记或者给一对点标记。满足每对未标记点的路径上的所有边都被标记。
n , m ≤ 10000 n,m\leq 10000 n,m10000
要么点对被覆盖,要么之间所有边被覆盖。建二分图,左边是点对,右边是边,每个点对向它们之间所有的边。求最小割即可。向树上的一条路径连边,可以倍增或者树剖优化。

5

给定一个由单位正方体组成的物体的俯视图,求最多拿掉多少正方体使得三视图不变。
n , m &lt; = 100 n,m&lt;=100 n,m<=100

首先满足俯视图。即俯视图不为零的都铺上一层。

答案的上界显然是每列最大值之和+每行最大值之和。什么时候答案会减小?就是行行和列公用最大值的时候。因此建立二分图,左边是行,右边是列,如果某行某列最大值相同并且这个格子可以放东西,就连流量 1 费用 最大值的边。跑最大费用流即可。

进一步观察发现权值相同的点才会联通,因此把权值相同的点拿出来跑最大流即可。

输赢分配问题

区间 k k k 覆盖问题
有一些区间,选择一个区间会产生一些收益。每个点覆盖它的区间最多不超过 k k k 个。
对于一个区间 [ l , r ] [l,r] [l,r],我们连边 l → r + 1 l\rightarrow r+1 lr+1,流量 1 1 1,费用 k k k。求流量为 k k k 的最大费用流

答案的上界显然是不对移动进行限制的匹配。

考虑去调整匹配(变得合法)。如果匹配中士兵移动以后炸掉一个炮楼,然而不合法,那么他不移动的时候一定也可以炸掉一个炮楼。我们对他的匹配进行调整,匹配数不变。
非常有趣的调整。证明了上界总是可以达到的。

这一类网络流问题总是先去考虑答案的上界,然后用最小割/最大流来调整,或是直接证明了上界可以达到。

杂谈

边权小的时候用桶代替dij的堆。
k短路 可并堆

多sat(每个变量出现两次,一正一反)。包含a的子句和-a的子句连无相边 cf

完全图最小生成树:曼哈顿最小生成树:把平面分成八个方向,向每个方向曼哈顿最近的点连边。每个区域有两条限制,比如x>=x0,(y-y0)-(x-x0)>=0,一维排序扫描线,另一维按区域维护x+y最小值即可。

编号gcd:只有向他的倍数的点的连边才有用。
xor:boruvka?

最小生成环套树。直接kruskal。正确性:未选择的边一定不在答案内。

次小生成树:枚举非树边,删掉路径最大边。

给定每个点的度数,构造满足条件的图或树

1.要求没有重边:
每次选一个度最大的点,假设度数为 k k k,和度数前 k k k 大的点连边。

2.不要求:
充要条件是最大点度数小于等于总度数的一半并且总度数为偶数。构造方法是每次选择两个度最大的点连边。

3.不要求没有重边要求联通。

树:
合法当且仅当和为 2 n − 2 2n-2 2n2,且每个点至少是 1 1 1
使用 prufer 序列,先提出叶子,和度数最大的点连边。维护两个集合,一个是叶子一个是非叶子。

prufer 序列:找到编号最小的叶子删掉,把邻接点放到序列里。直到剩两个点。每个点出现次数是 d − 1 d-1 d1 次。

线性代数黑科技:
无向图的 dfs 树上给每个非树边分配一个随机整数权值,树边权值等于覆盖他的非树边权值的异或,一组边集是割集当且仅当对应权值线性相关。
割集只删掉这组边以后联通块数量增加了。线性相关指存在一个子集异或为 0 0 0
dzyloves chinese。

支配树
DAG 上的做法较简单,一个点的支配点就是入边支配点的 Lca。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图论网络理论是计算机科学中的两个重要领域,旨在通过数学模型和算法解决与图和网络相关的问题。 图论主要研究图的性质和图上的操作。图是由节和连接节的边组成的集合,可以用来表示各种复杂的关系或网络图论的基础是图的定义和表示方法,如邻接矩阵和邻接表。在图论中,常研究的问题包括遍历图、寻找最短路径、寻找最小生成树等。图论的应用非常广泛,比如在社交网络分析中,可以利用图论分析人际关系;在电路设计中,可以利用图论解决电路的连接问题。 网络理论是图论的一个延伸应用。它主要研究在图中通过边上的量来模拟信息传输的问题。在网络理论中,源表示信息的起,汇表示信息的终,边上的容量表示边的传输能力,量表示信息的传输量。网络理论的主要问题是如何找到从源到汇的最大或最小割。为了解决这个问题,网络理论提出了一系列算法,如Edmonds-Karp算法和Ford-Fulkerson算法。这些算法是通过不断调整边上的量来逐步逼近最大或最小割。网络理论在解决网络规划、物问题等方面有着重要的应用,比如货物的运输路径规划和电力网络的最优供应问题。 综上所述,图论网络理论是计算机科学领域中的重要理论基础,能够帮助人们理解和解决与图和网络相关的问题。通过研究图论网络理论,可以更好地应用于各种实际场景,提高计算机科学的应用效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值