题意:n*m的图上有若干个人‘m’和房屋‘H’,人每走一步消耗一块钱,现在要让所有的人都进到房子去,一人一间房,问最小的费用是多少。
思路:最小费用流,添加超级源点和超级汇点建图,我用的spfa版费用流算法。...
分类:
其他好文 时间:
2015-02-09 18:29:34
阅读次数:
147
题目链接:点击打开链接
题意:
给定n+1个点([0,n] )m条边的无向图。起点为0,k个人初始在起点,
去遍历图使得每个点至少被一人走过且遍历 i 点时 i-1 必须已经被遍历。
使得k人的路径和最小,最后k人要回到起点。
思路:
费用流,因为对于一个人来说,这个人遍历点的序列一定是一个递增序列(不需要连续)
所以建图时i的出点只需要连接i+? 的入点。
若建一个完全图则会因为...
分类:
其他好文 时间:
2015-01-30 19:42:08
阅读次数:
158
题目大意:给出一个费用流的模型和已经流过的一些边,问是否存在比这个解更优的解。
思路:直接用原图做一次费用流求最优解会T掉。先介绍费用流消圈定理:如果当前费用流的残量网络中存在负圈,那么当前流不是最优的解。
其实很好理解,结合原图和流过流量之后的反边,若出现了负圈,那么就可以沿着这个负圈增广,而且费用更小。
不过为了解决这个题我们并不需要建立完整的网络流,只需要建立残量网络之后SPF...
分类:
其他好文 时间:
2015-01-29 09:40:21
阅读次数:
217
题目大意:给定一棵树和两组权值,求第一组权值最少改变多少个之后这棵树经过重标号之后与第二组权值相同
这个题做法很神- -
首先和3162一样的处理方式 我们先找到这棵树的重心作为根 如果重心有两个就新建一个根连向这两个重心
令f[x][y]表示x所在子树的第一组权值和y所在子树的第二组权值匹配的最小花销
转移的必要条件是x所在的子树与y所在的子树同构且x与y深度相同
为了保证无后效性,x...
分类:
其他好文 时间:
2015-01-28 09:47:34
阅读次数:
235
题意:1、一个人从[1,1] ->[n,n] ->[1,1]2、仅仅能走最短路3、走过的点不能再走问最大和。对每一个点拆点限流为1就可以满足3.费用流流量为2满足1最大费用流,先给图取负,结果再取负,满足2#include #include #include #include #include #i...
分类:
其他好文 时间:
2015-01-24 17:08:14
阅读次数:
142
题意:那个要尽量多的学生参加的意思就是一个学生如果对至少一个小组有兴趣,就一定要让他参加至少一个小组,然后每个学生至多参加k个,但是不是强迫参加。
题解:费用流
算了,还是说说建图吧。
模式:add(入点,出点,流量,费用)(别忘了反向弧)
add(源点,学生,k,0),add(学生,汇点,k-1,0)
对于每个学生A有兴趣的小组B add(A,B+n,1,0)
连n条...
分类:
其他好文 时间:
2015-01-23 18:33:37
阅读次数:
170
题目大意:主人公在玩游戏,他的存档系统坏了,只能从头开始游戏,不能从中途开始,问最少多长时间可以走过所有的流程。
思路:每一条边都要至少走一次,这是流量的下界,源点是游戏的开始,汇点是所有结局。裸的有下界有源汇的费用流。我也不知道为什么要那样建图。。
CODE:
#include
#include
#include
#include
#include
#defi...
分类:
其他好文 时间:
2015-01-23 09:36:08
阅读次数:
1398
感觉自己弱得没救了。。。求神犇解救T_T 12597: [Wc2007]剪刀石头布补集转化之后就是费用流了。我比较逗方案WA了两发。 1 int n,m,k,mincost,tot=1,cnt,s,t...
分类:
其他好文 时间:
2015-01-22 19:43:57
阅读次数:
127