首页 > 其他分享 >24冬网络流复习题解

24冬网络流复习题解

时间:2024-02-28 22:15:06浏览次数:22  
标签:24 连边 code 复习 所以 题解 然后 汇点 流量

A

是谁瞪了半个小时不会 *2000 呀,是谁呀是谁呀。

感觉这题比部分紫题都难。。。

首先发现选取字符的顺序并不重要,所以 \(t\) 可以看成 \(26\) 个字符要选的个数。
设字符 \(c\) 出现了 \(x\) 次,那么直接向汇点连流量为 \(x\) 费用为 \(0\) 的边。

然后考虑 \(s_i\) 与每个字符的关系。
先不管每个 \(s_i\) 限制的选择次数,所以直接向每个字符 \(c\) 连一条流量为 \(c\) 在 \(s_i\) 中出现次数,费用为 \(i\) 的边。

然后考虑每个字符串选择字符次数的限制。
可以直接从源点向每个字符串连接一个流量为 \(a_i\) 费用为 \(0\) 的边,这样最多有 \(a_i\) 流量流出去,所以最多选 \(a_i\) 个。

然后在这张图上求最小费用最大流。

code

B

首先有一个很自然的想法。
每个点 \(i\) 和源点连流量为 \(a_i\) 的边,和汇点连流量为 \(b_i\) 的边,原图有边的点互相连边,然后跑最大流。

但这样无法保证每个人只移动一次。
所以考虑分层,把点分成两层。
假如有一条边 \((x,y)\),就用第一层的 \(x\) 向第二层的 \(y\) 连边,然后第二层的点和汇点连边。

输出方案就看原图中有的点互相连的边的反边的容量即可。

code

C

直接二分 \(d\),然后每条边除以 \(d\) 向下取整,然后就是网络流板子了。

然后本题十分卡精度,所以要开 long double,实测精度二分到 \(10^{-11}\) 可以过。

code

D

费用流好题。

考虑把这个 \(k\) 看成一个费用的限制,所以每个管道变宽 \(1\) 就需要花费 \(1\) 的代。
,所以除了原图的边外再建一条 \(i\) 到 \(j\) 流量为 \(\inf\),费用为 \(1\) 的边(前提是 \(i,j\) 有边)。

然后跑最小费用最大流。
记录当前所经过了的路径的花费,然后每次判断是否超过了 \(k\),超过就取最多能取且没超过的部分,否则直接加上(具体可以看看代码)。

然后证明这样一定不会漏流。
因为跑费用流时是跑的最短路,所以前一条流所需费用一定比当前流小,所以当前流不可选接下来所有的流都不可选。

code

E

由于联通需要的是一颗树,所以实际上只要从 \(n\) 条边里选出 \(n-1\) 条边就可以了,所以直接把工人和边建立二分图,跑最大流即可。

但是有一个问题,由于原图是个奇环树,所以可能会把环上的边全部选上导致环外有点不联通。

所以考虑限制环上边的出现次数,只需要额外建立一个节点,让所有环上边向其连边,然后该点向汇点连一条流量为环大小减一的边即可。

代码还没写。。。

F

直接把科学家和救援仓所在格子建立二分图,然后用广搜判断两个格子是否合法,合法就连边。

code

G

终于到最小割啦!

这种“两权出现取其轻”的模型一看就是最小割。

那么先把边全部选上,所以把边的代价全部加上。

然后考率建图。
点很简单,直接从源点向其连流量为 \(a_i\) 的边就好了。
割掉这条边就相当于选上这个点。

然后考虑建边。
不难想到直接用这条边所依靠的两个点(也就是这条边的两个顶点)向其连边,费用为 \(\inf\)。
然后这条边所对应节点向汇点连流量为 \(w_i\) 的边即可。
割掉这条边就相当于不选这条边。

code

H

删除不好做,所以倒过来做增加。

考虑每个值域向所出现过了的社团连边,表示这个值想出现需要依靠这些社团中的一个。

然后社团向汇点连边。
由于每个社团只能选一个人,所以要将社团拆点。

然后维护答案,对于每个值域当作源点跑流,如果有流就让答案增加,第一个跑不出来的值就是答案。

code

I

首先直接二分答案,然后进行 \(check\) ,设当前二分的为 \(x\)。

先把 \(l_i\le x\) 的 \(i\) 拿出来。
然后对于每个数,有一个很显然的做法是把合法的数对连边,但无法满足两个数对之间是合法的。

正难则反,考虑把一些数删掉,使得剩下的合法。

所以把和为质数的数相互连边,做成割模型。

可以发现质数大部分都是奇数,所以可以分成奇数偶数两个部分,然后求最小割。

但是 \(2\) 这个数字很特殊。
因为其只能通过 \(1+1\) 平凑,所以无法正常进行。

但是 \(1\) 最多只会选择一个,所以可以找到代价最大的 \(1\),然后将其加入到图中求最小割。

code

咕咕咕...

标签:24,连边,code,复习,所以,题解,然后,汇点,流量
From: https://www.cnblogs.com/caoshurui/p/18042063

相关文章

  • 2024年2月28号题解
    P4994终于结束的起点解题思路通过加法同余原理可以知道f[i]%m==0,那么f[i-1]%m=1,所有把f[i+1]%m=1转换成了f[i-1]%m=1的问题那么只需要填好斐波那契数列再判断就可以了,又因为斐波那契可能会超出int的范围那么我们对每一项斐波那契再取模就可以了代码......
  • 旅游景点 Tourist Attractions (壮压 DP)题解
    简化题意题目链接——不卡内存班题目链接——卡内存版给定\(n\)个点和\(m\)条边组成的无向图,按照一定限制要求停留\(2\simk+1\)共\(k\)个点(可以经过但不停留),求最短的从\(1\)出发到\(n\)的路径长。限制情况如下:共有\(q\)个限制,接下来\(q\)行,每行两个数\(x......
  • HEOI2024 退役记
    这篇游记打算用一些比较不魔怔的方式写。Day-3倒数第三天,这天写了闲话所以把一些不想再写一遍的东西粘上来:哎昨天晚上我还久违做梦了,我梦到我场上还在写defineLOCAL然后#ifdefLOCAL后面freopen啥的。然后最后我不知道我咋想的我把所有的ifdef改成了ifndef,但是我还......
  • CF1408H Rainbow Triples 题解
    Description给定长度为\(n\)的序列\(p\)找出尽可能多的三元组\((a_i,b_i,c_i)\)满足:\(1\lea_i<b_i<c_i\len\)\(p_{a_i}=p_{c_i}=0\),\(p_{b_i}\ne0\)\(p_{b_i}\)互不相同。所有的\(a_i,b_i,c_i\)互不相同。输出最多可以选出多少个三元组,多组数据。\(\sumn\le......
  • HEOI 2024 游记
    Day-2流沙-陶喆昨天晚上的事我看没有什么好谈的吧我看就这样吧Ohyeahoh并不是真的路过而已也不是真的不会想你全部不是真的是骗自己其实还爱你爱着你我以为我早想清楚不由自主恍恍惚惚又走回头路再看一眼有过的幸福爱情好像流沙我不挣扎随它去吧我不害怕爱......
  • P10160 [DTCPC 2024] Ultra 题解
    【题目描述】给你一个\(01\)序列,你可以进行如下操作若干次(或零次):将序列中形如\(101\cdots01\)的一个子串(即\(1(01)^k\),\(k\ge1\))替换成等长的\(010\cdots10\)(即\(0(10)^k\))。你要操作使得\(1\)的个数尽可能少,输出最少的\(1\)的个数。【思路】一开始看到这道题......
  • 数据类型拓展与面试题解读
    整数拓展进制:在平时咱们生活中经常见到的例如通用于电脑识别的二进制、咱们生活中常用的十进制、工作中常见的八进制与十六进制。二进制:通常会以0b开头十进制:咱们生活中的数字八进制:通常以0开头十六进制:通常以0x开头​ 浮点数拓展(float、double)试题举例银行......
  • 2024/02/27
    packageorg.example.schooltest;importDAO.SchoolDAO;importDAO.liushuiDAO;importbean.LiuShui;importbean.School;importjakarta.servlet.annotation.WebServlet;importjakarta.servlet.http.HttpServlet;importjakarta.servlet.http.HttpServletRequest;i......
  • 2024/02/26
    <%@pageimport="bean.School"%><%@pageimport="java.util.List"%><%--CreatedbyIntelliJIDEA.User:龚涵彬Date:2024/2/27Time:15:11TochangethistemplateuseFile|Settings|FileTemplates.--%><......
  • Codeforces Round 929 (Div. 3) 题解(D-G)
    比赛链接:https://codeforces.com/contest/1933官解暂未放出。质量不错的一场D3。CF1933D.TurtleTenacity:ContinualMods题意将数组\(a_{1..n}\ge1\)重排,问是否能使\(((a_1\mathbin{\rmmod}a_2)\mathbin{\rmmod}a_3)\cdots\mathbin{\rmmod}a_n\ne0\)......