上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 28 下一页
摘要: 思路 这道题网络流建模十分妙妙。 首先从源点 $s$ 连一条流量为 $a_i$ 的边到 $i$,从 $i$ 连一条流量为 $b_i$ 的边到汇点 $t$。 把答案当做这张图的最小割,如果加了一条限制 $(x,y,v)$,那么也就是如果割掉了两个点同侧的边就不用其他费用,否则要加上费用。 发现要加上费 阅读全文
posted @ 2022-07-01 14:44 A_zjzj 阅读(73) 评论(0) 推荐(0)
摘要: 思路 显然直接建图跑个最大流,答案就是总蜥蜴数减掉最大流。 但是由于有高度的限制,也就是每个地方只能被走一定数量,还要加一些限制。 所以把每个点拆成入点和出点,从入点向出点连一条流量为 $h_{i,j}$ 的边。 再枚举出每个格子能跳到的其他格子,从当前格子的出点向其他能跳到的格子的入点连一条 $+ 阅读全文
posted @ 2022-07-01 12:49 A_zjzj 阅读(38) 评论(0) 推荐(0)
摘要: 思路 这题的转化很妙,我看了一下题解才想明白。 首先显然往返不需要走一个环,直接原路返回可以达到最优,所以危桥至多只能走 $2$ 次可以和往返直接抵消掉。 变成危桥最多只能走 $1$ 次,不需要往返,只要过去就行了。 那么想到用网络流,从超级源 $s$ 向 源点 $a_1,b_1$ 连边,从汇点 $ 阅读全文
posted @ 2022-07-01 11:23 A_zjzj 阅读(52) 评论(0) 推荐(0)
摘要: 思路 先考虑二维的怎么做,发现选了一列要填,那么肯定是这一列都填一遍,然后发现如果有一个点要被填,也就是这一列和这一行只要要填一个,建出二分图,直接跑个最小点覆盖(也就是选出最少的点使得每条边都至少有一个点被覆盖,数值上等于最大匹配)。 然后转化到三维上去,就是直接枚举一维的覆盖情况,然后转化到二维 阅读全文
posted @ 2022-07-01 09:33 A_zjzj 阅读(52) 评论(0) 推荐(0)
摘要: 思路 考虑先对各点黑白染色,然后对于相邻的点连边建出二分图。 如果这个二分图有完全最大匹配(即每个点都匹配到了),那么先手必败,因为无论选那个点,后手只要向这个点匹配的另一个点走就行了。 如果是不完全最大匹配,那么先手必胜。 所以先手只要选到不一定在最大匹配中的点开始就一定赢,因为无论接下来后手走到 阅读全文
posted @ 2022-06-29 21:52 A_zjzj 阅读(37) 评论(0) 推荐(0)
摘要: 思路 第一问 第一问与YbtOJ「图论」第1章 二分图匹配 J. 祭祀一模一样。 考虑处理出原 dag 图的两两点之间能否可达(可用 Floyd),然后题中是求最大的若干点之间没有两两可达的点对。 那么建出二分图之后,发现如果出现一对匹配,那么相当于这两个点里面有一个不能选了,所以答案就是总的点数- 阅读全文
posted @ 2022-06-28 21:26 A_zjzj 阅读(63) 评论(0) 推荐(0)
摘要: 思路 考虑处理出原 dag 图的两两点之间能否可达(可用 Floyd),然后题中是求最大的若干点之间没有两两可达的点对。 那么建出二分图之后,发现如果出现一对匹配,那么相当于这两个点里面有一个不能选了,所以答案就是总的点数-最大匹配。 代码 #include<bits/stdc++.h> using 阅读全文
posted @ 2022-06-28 20:49 A_zjzj 阅读(41) 评论(0) 推荐(0)
摘要: 思路 会发现要求一个最大的完全子图(每个点两两之间有连边),所以考虑把建出原图的反图,然后每个点两两之间有连边就转化成为了每个点两两之间没有连边,也就是二分图的最大独立子集,是需要用总点数-最大匹配即可。 代码 #include<bits/stdc++.h> using namespace std; 阅读全文
posted @ 2022-06-28 19:50 A_zjzj 阅读(39) 评论(0) 推荐(0)
摘要: 思路 发现模板串最多只有一个*,所以考虑对于一个含有*的模板串,相当于链接了两个不含*的模板串。 所以我们先把所有的串转换为不含*的模板串,然后两两判断是否可以连边(因为只能有一个*,所以判断依据就是 $\operatorname{popcount}(u \operatorname{xor} v)= 阅读全文
posted @ 2022-06-28 19:31 A_zjzj 阅读(51) 评论(0) 推荐(0)
摘要: 思路 直接按照要求的走法可以建出一张 dag 图,发现就是跑一个最小路径覆盖,参见洛谷P2764,题解。 只需要用二分图匹配,每一次连接了一对匹配,相当于合并了两条路径(单个点也认为是路径),所以要让路径总数最小,就要让匹配的数量最大,由于是路径,所以每个点的入点和出点都最多只能连两条边。 代码 # 阅读全文
posted @ 2022-06-28 08:31 A_zjzj 阅读(38) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 28 下一页