缩点前排不全缩点后排全
把上一节那张有环的图缩点:每个强连通分量捏成一个点,分量之间的边保留(去掉重边和自环)。 拿同一个 kahn,在原图和缩点后的图上各排一次,输出各自排出来的个数。 (本题用 g++ -std=c++17 -O0 编译。)
最大流卡在哪儿
一张管道网,从水源到出口每秒最多能过多少水,取决于【0】。
增广路是什么
第 1 步:数字是每根管子的容量 第 2 步:找到 S→A→T:最细是 2 第 3 步:灌 2:出口收到 2 第 4 步:再找 S→B→T:最细也是 2 第 5 步:再灌 2:一共 4 第 6 步:再也找不到路:最大流 4 S A B T
这张网每秒最多过多少水
一张管道网,0 号是水源、6 号是出口,cap[u][v] 是 u→v 这根管子每秒最多能过多少水。 运行下面这段程序: #include <algorithm> #include <climits> #includ
自己写:灌满一条增广路
一张管道网,0 号是水源、6 号是出口,cap[u][v] 是 u→v 这根管子每秒最多能过多少水。 找路那半已经写好了,b 是这条路上最细的一段。补上灌水这两步。外层的 for (round < 50) 是步数上限,防止没写完时死转
把卡住它的那一刀找出来
一张管道网,0 号是水源、6 号是出口,cap[u][v] 是 u→v 这根管子每秒最多能过多少水。 最大流跑完之后,残量图里从水源还走得到的点已经算进 side 了。把跨出 side 的那些原图管子收成割,输出最大流/割容量/割上有几条边
拆一根管子有时毫无影响
一张管道网,0 号是水源、6 号是出口,cap[u][v] 是 u→v 这根管子每秒最多能过多少水。 把 4 → 3 那根管子整根拆掉,和原来的网各跑一次最大流,再数一数拆完还剩几根管子,三个数一起输出。 (本题用 g++ -std=c++
加粗哪根管子才真有用
一张管道网,0 号是水源、6 号是出口,cap[u][v] 是 u→v 这根管子每秒最多能过多少水。 给你一次加粗的机会。分别试试加粗最细的那根(1 → 4,从 2 到 4)和加粗割上的那根(3 → 6,从 3 到 5),连同原始值一起输出
什么问题能套二分图匹配
第 1 步:点表示会开这台机器 第 2 步:阿岚先挑:拿走甲 第 3 步:小满只会甲:没得挑了 第 4 步:让阿岚挪到乙,甲给小满 第 5 步:阿泰让出丙:四对全配上 甲 乙 丙 丁 阿岚 小满 阿泰 南风 · · · · · · 下面这些
先到先得为什么不够
按名单顺序一个个来,每人挑一台还空着的机器。这么配的毛病是【0】。