`
aijuans
  • 浏览: 1564980 次
社区版块
存档分类
最新评论

POJ-1273-Drainage Ditches

阅读更多

POJ-1273-Drainage Ditches

http://poj.org/problem?id=1273

基本的最大流,按LRJ的白书写的

#include<iostream>
#include<cstring>
#include<queue>
using namespace std;
#define INF 0x7fffffff
int main()
{
	int n,m;
	int from,to,w,f;
	int u,v;
	int cap[201][201],flow[201][201];
	int a[201];  //起始点到每个节点的最小残量,a[i]总是正数,代替visit标记数组
	int p[201];
	queue<int>q;
	while(scanf("%d%d",&m,&n)!=EOF)
	{
		memset(cap,0,sizeof(cap));
		memset(flow,0,sizeof(flow));
		while(m--)
		{
			scanf("%d%d%d",&from,&to,&w);
			cap[from][to]+=w;
		}
		f=0;
		for(;;)
		{
			memset(a,0,sizeof(a));
			a[1]=INF;
			q.push(1);
			while(!q.empty())  //BFS找增广路
			{
				u=q.front();
				q.pop();
				for(v=1;v<=n;v++)
				if(!a[v]&&cap[u][v]>flow[u][v])
				{
					p[v]=u;  //记录v的父亲,并加入队列
					q.push(v);
					a[v]=a[u]<(cap[u][v]-flow[u][v])?a[u]:(cap[u][v]-flow[u][v]);  //最小残量
				}
			}
			if(a[n]==0)  //找不到,则当前流已经是最大流
			break;
			for(u=n;u!=1;u=p[u])  //从汇点往回走
			{
					flow[p[u]][u]+=a[n];  //更新正向流量
					flow[u][p[u]]-=a[n];  //更新反向流量
			}
			f+=a[n];  //更新从源点流出的总流量
		}
		printf("%d\n",f);
	}
	return 0;
}


更多详细信息请查看java教程网 http://www.itchm.com/forum-59-1.html
分享到:
评论

相关推荐

    poj-1002源码,没有题解,题解看博客

    poj-1002源码,没有题解,题解看博客poj-1002源码,没有题解,题解看博客poj-1002源码,没有题解,题解看博客poj-1002源码,没有题解,题解看博客

    poj-1009.rar_poj

    【标题】"POJ-1009"是北大在线编程竞赛平台上的一个题目,它涉及到计算机科学中的算法和编程技巧。POJ(Problem Set of Peking University)是中国北京大学主办的一个在线编程竞赛平台,旨在提高学生的算法设计和...

    POJ---1456.Supermarket测试数据及答案

    POJ---1456.Supermarket测试数据及答案,题目描述:A supermarket has a set Prod of products on sale. It earns a profit px for each product x∈Prod sold by a deadline dx that is measured as an integral ...

    POJ-3299解题

    POJ-3299解题 C++源代码 Description Adapted from Wikipedia, the free encyclopedia The humidex is a measurement used by Canadian meteorologists to reflect the combined effect of heat and humidity. It...

    acm新手刷题攻略之poj

    ### ACM新手刷题攻略之POJ ... - 推荐题目:[poj1068](https://vjudge.net/problem/POJ-1068)、[poj2632](https://vjudge.net/problem/POJ-2632)、[poj1573](https://vjudge.net/problem/POJ-1573)、[poj2993]...

    POJ-2151.rar_poj

    【标题】"POJ-2151.rar_poj"是一个与编程竞赛相关的压缩文件,主要涉及的问题是“检查问题的难度”,并且是为动态规划的实战练习而设计的。这个题目来自于著名的在线编程竞赛平台POJ(Programming Online Judge)。 ...

    POJ3253-POJ3253-Fence Repair【STL优先队列】

    标题“POJ3253-POJ3253-Fence Repair【STL优先队列】”指的是一个在线编程竞赛题目,源自北京大学的在线判题系统POJ(Problem Online Judge)。该题目要求参赛者使用C++编程语言解决特定的问题,并且在解决方案中...

    poj-1028-Web-Navigation.zip_poj

    【标题】"poj-1028-Web-Navigation.zip_poj" 指向的是一个编程竞赛问题,POJ(Programming Online Judge)平台上的第1028题,名为“Web Navigation”。该问题通常涉及到算法设计和实现,可能是为了考察参赛者的编程...

    poj-2528 Mayor's posters 测试数据及答案

    【标题】"poj-2528 Mayor's posters 测试数据及答案"涉及的是一个编程竞赛中的问题,这个问题来源于POJ(Programming Online Judge)平台,编号为2528。POJ是一个在线的编程练习系统,它提供了一系列的问题供程序员...

    POJ-1170.rar_poj

    标题中的“POJ-1170.rar_poj”指的是编程竞赛网站POJ(Programming Online Judge)上的一个问题,编号为1170。POJ是一个在线的编程练习平台,主要面向学习和提升算法与编程技能的用户。这个问题的解决方案可能包含在...

    POJ2002-Squares

    【标题】"POJ2002-Squares"是一个经典的计算机编程题目,源自北京大学的在线判题系统(POJ,即PKU Online Judge)。这个题目主要涉及到算法设计和实现,尤其是数学和动态规划方面的知识。 【描述】"解题报告+AC代码...

    POJ2525-Text Formalization【TrieTree】

    《POJ2525-Text Formalization:深入解析TrieTree》 在计算机科学的世界里,算法和数据结构是解决问题的关键。今天我们要探讨的是一个名为"POJ2525-Text Formalization"的问题,它涉及到一种高效的数据结构——Trie...

    samcat2021#ZXBlog#POJ - 2136. VerticalHistogram(统计字母个数)1

    POJ - 2136. VerticalHistogram(统计字母个数)题目链接题目就是给你四行字符串,然后要你统计大写字母(只有大写字母)的个数,然后以特定

    poj 1000 - 2000 部分题目 官方分类

    《POJ 1000 - 2000 部分题目 官方分类》 编程竞赛,特别是在线判题系统(如POJ,即Problem Online Judge)中的题目,是提升编程技能和算法理解的重要途径。POJ 1000 - 2000 是一个涵盖广泛的题目区间,包含了大量的...

Global site tag (gtag.js) - Google Analytics