hdu 3947 River Problem(流量不等式建图,最小费用最大流)
(2011-08-16 20:48:02)
标签:
杂谈 |
首先,如果你要AC这个题目,如果照我的思路来说,你必须知道noi 2008 志愿者招聘
在上上篇论文是有滴...
然后才能做这个题目...
首先题目保证了这是个树,也就是说路径s->t是明确的...
流量平衡是这样建立的...
首先:
把边按容量建立不等式...
假如s->t的路径1、2 都经过w1边分别为x[1],x[2]次
则:
x[1]+x[2] >= w1 ;
增加增量量 , p1==x[1]+x[2]+y[1]==w1 ;
其他都这么建...那么就有n-1个等式了。
然后要新增一个等式,也就增加题目里1->n+1这条边,也就是增加一个这样的等式
pn == 0 ;
然后就是用父亲所在的边减去儿子所在的边。。。//这里是重点啊...
中,有一个是 -x1 , 一定有一个是 +x1 。这样就保证了流量平衡了
建边就非常简单了
上式减后:0==w1-w1[son] -
x[1]
这样负号的就连出边去。。。
#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
using namespace std;
#define sz 200
#define inf 0x7fffffff
int g[sz][sz];
int s[sz],t[sz],v[sz];
struct node{
} e[sz * 40 + 20];
int hd[sz], cnt, pre[sz] , pos[sz], dis[sz], vis[sz];
int sum ;
void insert(int s, int t, int v, int len){
}
bool spfa(int s, int t, int n){

加载中…