poj1273 2010.2.17
2016-02-05 14:17
218 查看
poj1273 2010.2.17
wa因:
1. while(scanf("%d%d",&m,&n)!=EOF)
{
memset(mat,0,sizeof(mat));
for(i=0;i<m;i++)
{
scanf("%d%d%d",&a,&b,&c);
mat[a][b]+=c;//处理两点之间的多条边
}
printf("%d\n",Edmonds_Karp(1,n));
}
2. “The input includesseveral cases”漏掉了这句话,以为只有一组数据
wa因:
1. while(scanf("%d%d",&m,&n)!=EOF)
{
memset(mat,0,sizeof(mat));
for(i=0;i<m;i++)
{
scanf("%d%d%d",&a,&b,&c);
mat[a][b]+=c;//处理两点之间的多条边
}
printf("%d\n",Edmonds_Karp(1,n));
}
2. “The input includesseveral cases”漏掉了这句话,以为只有一组数据
#include <cstdio> #include <cstring> #include <queue> using namespace std; #define MAXN 400+10 #define INF 1000000000 int flow[MAXN][MAXN],cap[MAXN][MAXN],a[MAXN],p[MAXN]; int n,s,t,m,f; void edmondskarp(); void edmondskarp() { queue<int> q; memset(flow,0,sizeof(flow)); f=0; for(;;) { memset(a,0,sizeof(a)); a[s]=INF; q.push(s); while (!q.empty()) { int u=q.front(); q.pop(); for(int v=1;v<=n;v++) if (!a[v]&&cap[u][v]>flow[u][v]) { p[v]=u; q.push(v); if (a[u]<cap[u][v]-flow[u][v]) a[v]=a[u]; else a[v]=cap[u][v]-flow[u][v]; } } if(a[t]==0) break; for(int u=t;u!=s;u=p[u]) { flow[p[u]][u]+=a[t]; flow[u][p[u]]-=a[t]; } f+=a[t]; } } int main() { while (scanf("%d %d",&m,&n)!=EOF) { int i,t1,t2,t3; s=1; t=n; memset(cap,0,sizeof(cap)); for(i=1;i<=m;i++) { scanf("%d %d %d",&t1,&t2,&t3); cap[t1][t2]+=t3; } edmondskarp(); printf("%d\n",f); } // printf("\n"); // for(i=1;i<=n;i++) // printf("%d %d\n",i,a[i]); return 0; }
相关文章推荐
- 固定导航(Sticky nav)
- C++暑期学习笔记
- 《HTTP权威指南》学习笔记——URL和资源
- Google protocol-buffers java版--简单使用
- iOS开发之苹果公司联系邮箱大全
- HDU 1018 big numbe
- 计算机网络的特点及性能
- win10、win7系统64位oracle11g安装教程以及32位plsql连接教程
- poj1221 2010.2.17
- 项目中遇到的问题
- 蓝桥杯学习记录-基础练习
- linux命令行下如何以目录树的形式显示一个文件夹的所有文件
- 通知:转移至简书
- PAT (Basic Level)1009. 说反话
- Angular-JS初见
- [转] AT指令(打电话与发短信)
- 计算机网络的类别
- Python错误: SyntaxError: Non-ASCII character
- uva1420
- 零基础汇编学习笔记