hdu 3549 Flow Problem 网络流
创始人
2024-02-09 06:24:08
0

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549

Network flow is a well-known difficult problem for ACMers. Given a graph, your task is to find out the maximum flow for the weighted directed graph.

Input

The first line of input contains an integer T, denoting the number of test cases.
For each test case, the first line contains two integers N and M, denoting the number of vertexes and edges in the graph. (2 <= N <= 15, 0 <= M <= 1000)
Next M lines, each line contains three integers X, Y and C, there is an edge from X to Y and the capacity of it is C. (1 <= X, Y <= N, 1 <= C <= 1000)

Output

For each test cases, you should output the maximum flow from source 1 to sink N.

题意:不能再简单了这题意,很裸的告诉你根据输入来求解最大流。

解法:网络流算法求解最大流,模板题,Dinic。

 1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #define inf 0x7fffffff9 using namespace std;
10 const int maxn=16;
11 
12 int n,m;
13 int graph[maxn][maxn],d[maxn];
14 
15 int bfs()
16 {
17     memset(d,0,sizeof(d));
18     d[1]=1;
19     queue Q;
20     Q.push(1);
21     while (!Q.empty())
22     {
23         int u=Q.front() ;Q.pop() ;
24         for (int v=1 ;v<=n ;v++)
25         {
26             if (!d[v] && graph[u][v]>0)
27             {
28                 d[v]=d[u]+1;
29                 Q.push(v);
30                 if (v==n) return 1;
31             }
32         }
33     }
34     return 0;
35 }
36 
37 int dfs(int u,int flow)
38 {
39     if (u==n || flow==0) return flow;
40     int cap=flow;
41     for (int v=1 ;v<=n ;v++)
42     {
43         if (d[v]==d[u]+1 && graph[u][v]>0)
44         {
45             int x=dfs(v,min(cap,graph[u][v]));
46             cap -= x;
47             graph[u][v] -= x;
48             graph[v][u] += x;
49             if (cap==0) return flow;
50         }
51     }
52     return flow-cap;
53 }
54 
55 int Dinic()
56 {
57     int sum=0;
58     while (bfs()) sum += dfs(1,inf);
59     return sum;
60 }
61 
62 int main()
63 {
64     int t,ncase=1;
65     scanf("%d",&t);
66     while (t--)
67     {
68         scanf("%d%d",&n,&m);
69         int a,b,c;
70         memset(graph,0,sizeof(graph));
71         for (int i=0 ;i 

相关内容

热门资讯

最小的是? 最小的是?面积最小的是北冰洋
刻舟求剑的含义是什么 刻舟求剑的含义是什么 刻舟求剑,比喻事物已发生变化而仍静止地看待问题。是《吕氏春秋·察今》吕不韦记...
大学考试成绩,当学生干部,拿奖... 大学考试成绩,当学生干部,拿奖助学金都靠关系,我受不了这样的环境个人觉得,要是你做到自己应该做的了,...
以第三人称写小说,人物的心理描... 以第三人称写小说,人物的心理描写要怎样写?是要描写仰或是不要?如果要,怎样写更好?以第三人称来写,最...
中秋佳节演讲稿 中秋佳节演讲稿第一个回答我知道,我们班同学已讲过了 中秋之夜,月圆如镜,月华如洗.当家家户户摆出月...
“相濡以沫,不如相忘于江湖”,... “相濡以沫,不如相忘于江湖”,磁场不合的星座有哪些?白羊座,天蝎座,摩羯座,射手座,双鱼座,金牛座,...
帮帮忙想想复仇小说的名字 帮帮忙想想复仇小说的名字独特一点的流恒。意思是指时间的流逝也无发带走的仇恨。复仇之暗夜永恒无家者之复...
金鹰美食世界有哪些美食? 金鹰美食世界有哪些美食?一根排骨、猫爪米线、重庆小面,重庆酸辣粉,藤椒钵钵鸡、降龙爪爪、海味人家、土...
做为一个仓库管理员,要怎么样去... 做为一个仓库管理员,要怎么样去做才能做到最好?仓库的货心里有数 摆放的地方合理有序 台帐清楚明朗
刚上高中,突然感觉人与人之间的... 刚上高中,突然感觉人与人之间的关系变的微妙又脆弱。有些时候朋友之间,表明上笑着其实感觉关系并不是很建...
来讲几个经典的荤笑话? 来讲几个经典的荤笑话?多年前的一个黄昏,我流连在台北街头的录音带店,正在挑选cd时,身後传来了一个声...
求异界小说 和都市小说 主角要... 求异界小说 和都市小说 主角要无敌 YY 完本的异界之九阴九阳吞噬规则 永恒诀官神、重生之大涅槃...
梁洛施分手,李泽楷和梁洛施分手... 梁洛施分手,李泽楷和梁洛施分手费是多少?一栋豪宅 十亿港币
胆小最小喜嫩草是什么生肖 胆小最小喜嫩草是什么生肖我觉得不是羊就是牛,因为羊喜欢吃嫩草,而且胆子也不大,牛的话,老牛吃嫩草嘛,...
一起长大的童年 一起长大的童年       家有两娃,每天的日常就是一会打闹、一会和气,当你还在塌亮纠结怎么全解时,...
求一篇高中话题作文“追求与放弃... 求一篇高中话题作文“追求与放弃”追求梦想放弃烦恼
对世间上的一切事物没有任何兴趣... 对世间上的一切事物没有任何兴趣是一种什么样的体验?这种体验非常的不好,因为你认为这世界上没有任何一件...
我发现了一个秘密作文怎么写 我发现了一个秘密作文怎么写θ心ββ£↖人的必了一
现在还有仙剑奇侠传1电视剧小说... 现在还有仙剑奇侠传1电视剧小说卖吗?哪里有啊,100元以内的。谢谢一楼楼主说得对下电子版的不就行啦额...
请问这首歌是谁唱的 请问这首歌是谁唱的歌曲:妹妹歌手:光良 专辑:童话 你笑说风好大没说两句话泪就像雨落下好好哭一哭有没...