最大流,拆点
题意:@可以无限走,*人的初始位置,其他人不能走。~水,不能走, ...只能走一次,#终点,可以容纳的人数为p;问最多有多少人获救(到达了#)
这道题是最大流问题,主要是要去构建图。怎么构建图呢?主要是用拆点,把一个点拆成两个点,点(i,j)可以表示为:前点(i-1)*A+j,后点(i-1)*A+j+M(M为一个较大的数,保证M大于等于S*A就行),然后连接前点和后点,方向是从前点到后点,@和#他们的前点和后点边的权值设置无穷大。
相邻的点,图是无向的,用该点的后点连接相邻点的前点,如果是相邻...
分类:
其他好文 时间:
2016-05-07 10:38:40
阅读次数:
172
费用流。。 先把a数组里的数全部质因数分解,判断ai/aj是否为质数,就看质因数互相抵消后是不是只剩一个质因数。 满足条件的数就连边 接下来我想拆点建二分图。。然而由题解可得,连边的两个数 的质因数个数 的奇偶性肯定不同。。 就相当于自带黑白染色...所以奇数个连汇,偶数个连源就行了= = 因为有价 ...
分类:
其他好文 时间:
2016-04-29 01:25:56
阅读次数:
288
算法讨论: 首先求出dp[i],表示1 ... i的最长不降子序列的长度。(本来是严格递增的,但是数据出挫了,成了不降了)然后我们可以知道最长的不降子序列的长度 K,这是第一问的答案。接下来把每个i拆点,拆成<i, a> <i, b>对于每个i,如果有dp[i] = K,那么就insert(<i,b ...
分类:
其他好文 时间:
2016-04-19 18:54:26
阅读次数:
158
拿到一道题,有时候数据范围的信息量,比题面还大,有些特别的范围就相当于把正解告诉你了,所以想从现在多积累一些数据范围,如果数据范围与算法有关就记下来。 数据量: [1,20]:状压dp、强剪枝爆搜 [1,50]:需要拆点的最短路、网络流 [1,100]:网络流 [1,1000] [1,10000] ...
分类:
其他好文 时间:
2016-04-17 14:28:18
阅读次数:
88
拆点跑$MCMF最小费用最大流$ 复习一下$MCMF$模板啦啦啦~~~ 一些坑:更新$dist$后要接着更新$pre$,不要判断是否在队列中再更新,,,听不懂吧,听不懂就对了,因为只有我才会在这种错误上犯逗$TwT$ hhh ...
分类:
其他好文 时间:
2016-04-04 13:08:33
阅读次数:
163
题目大概说有m个人要过一条宽W的河,人最远跳远距离是d,河上有n个垃圾堆,每个垃圾堆都有坐标和同一时间能容纳的人数,问所有人最少要跳几次才能跳到对岸。 又是一题根据时间拆点的最大流。 二分时间建容量网络判定:按时间对每个垃圾堆拆点,再拆成两点中间连容量为同一时间能容纳的人数的边,所有t时刻的点向所有 ...
分类:
其他好文 时间:
2016-04-03 20:24:04
阅读次数:
185
题目大意 给一幅由N个点和M条无向边组成的图,要求删掉最少的点使得c1和c2无法连通(不能删这两个点)。输出删的点数以及要删的点,要求删的点的字典序最小。 题解 我记得以前貌似是删边的。删点其实也类似,把点转换成边就可以了。所以就要拆点了,拆点的方法不多说。 然后跑一遍最小割(最大流),原来的边的流 ...
分类:
其他好文 时间:
2016-03-26 18:40:59
阅读次数:
174
题目大概说,一个国家有n个城市,由m条双向路相连,小偷们从城市s出发准备到h城市,警察准备在某些除了s和h外的城市布置警力抓小偷,各个城市各有警力所需的数目。问警察最少要布置多少警力才能万无一失地抓住所有小偷。 相当于就是用最小的花费让s到达不了h。这么建容量网络: 每个城市拆点连容量为需要警力数量
分类:
其他好文 时间:
2016-03-20 16:04:52
阅读次数:
180
费用流,拆点 源点分别向拆出的点连费用为0,费用为定位费的点,再把原有的航路建出来。
分类:
其他好文 时间:
2016-03-18 07:14:36
阅读次数:
203