摘要: 思路 这道题网络流建模十分妙妙。 首先从源点 $s$ 连一条流量为 $a_i$ 的边到 $i$,从 $i$ 连一条流量为 $b_i$ 的边到汇点 $t$。 把答案当做这张图的最小割,如果加了一条限制 $(x,y,v)$,那么也就是如果割掉了两个点同侧的边就不用其他费用,否则要加上费用。 发现要加上费 阅读全文
posted @ 2022-07-01 14:44 A_zjzj 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 思路 显然直接建图跑个最大流,答案就是总蜥蜴数减掉最大流。 但是由于有高度的限制,也就是每个地方只能被走一定数量,还要加一些限制。 所以把每个点拆成入点和出点,从入点向出点连一条流量为 $h_{i,j}$ 的边。 再枚举出每个格子能跳到的其他格子,从当前格子的出点向其他能跳到的格子的入点连一条 $+ 阅读全文
posted @ 2022-07-01 12:49 A_zjzj 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 思路 这题的转化很妙,我看了一下题解才想明白。 首先显然往返不需要走一个环,直接原路返回可以达到最优,所以危桥至多只能走 $2$ 次可以和往返直接抵消掉。 变成危桥最多只能走 $1$ 次,不需要往返,只要过去就行了。 那么想到用网络流,从超级源 $s$ 向 源点 $a_1,b_1$ 连边,从汇点 $ 阅读全文
posted @ 2022-07-01 11:23 A_zjzj 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 思路 先考虑二维的怎么做,发现选了一列要填,那么肯定是这一列都填一遍,然后发现如果有一个点要被填,也就是这一列和这一行只要要填一个,建出二分图,直接跑个最小点覆盖(也就是选出最少的点使得每条边都至少有一个点被覆盖,数值上等于最大匹配)。 然后转化到三维上去,就是直接枚举一维的覆盖情况,然后转化到二维 阅读全文
posted @ 2022-07-01 09:33 A_zjzj 阅读(35) 评论(0) 推荐(0) 编辑