晨跑
来源:互联网 发布:泰·劳森国王数据 编辑:程序博客网 时间:2024/05/16 02:48
#include<cstdio>#include<iostream>#include<cstring>#include<queue>using namespace std;const int M=199999;int n,m,s,t;int dis[M];;int nex[M],head[M],cos[M],to[M],tot,pre[M],cap[M],vis[M],flo[M],id[M];struct st2{ int f,b;}a[M];int add(int x,int y,int z,int w){ cos[tot]=z; cap[tot]=w; nex[++tot]=head[x]; to[tot]=y; head[x]=tot;}int spfa(int s,int t){ queue <int> q; memset(dis,127,sizeof(dis)); memset(vis,0,sizeof(vis)); memset(pre,-1,sizeof(pre)); int INF=dis[0]; dis[s]=0; vis[s]=1; q.push(s); flo[s]=INF; while(!q.empty()){ int x=q.front(); vis[x]=0; q.pop(); for(int i=head[x];i;i=nex[i]) { int tmp=to[i]; if(dis[tmp]>dis[x]+cos[i-1]&&cap[i-1]){ dis[tmp]=dis[x]+cos[i-1]; pre[tmp]=x; flo[tmp]=min(flo[x],cap[i-1]); id[tmp]=i-1; if(!vis[tmp]){ q.push(tmp); vis[tmp]=1; } } } } if(dis[t]>=INF)return 0; return 1;}struct st{ int cost=0; int flow=0;};st maxflow(int s,int t){ st a; while(spfa(s,t)){ int k=t; while(k!=s){ cap[id[k]]-=flo[t]; cap[id[k]^1]+=flo[t]; k=pre[k]; } a.flow++; a.cost+=dis[t]; } return a;}int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++){ add(i,n+i,0,1); add(n+i,i,0,0); } int cnt=1; for(int i=1;i<=m;i++){ int x,y,z,w; scanf("%d%d%d",&x,&y,&z); add(x+n,y,z,1); add(y,x+n,-z,0); } //printf("%d %d",a[1].b,a[n].f); st d=maxflow(1+n,n); printf("%d %d",d.flow,d.cost); return 0;}
阅读全文
0 0
- 晨跑
- 晨跑
- 晨跑 (run)
- [SDOI2009]晨跑
- codevs2306 晨跑
- SDOI2009 晨跑
- BZOJ1877晨跑
- bzoj1877 晨跑
- SDOI2009晨跑
- “[SDOI2009] 晨跑”
- [BZOJ 1877][SDOI2009]晨跑
- 【BZOJ 1877】 [SDOI2009]晨跑
- [BZOJ1877][SDOI2009]晨跑
- bzoj 1877: [SDOI2009]晨跑
- 1877: [SDOI2009]晨跑
- codevs2306晨跑(SDOI2009)
- 【SDOI2009】【BZOJ1877】晨跑
- 【BZOJ 1877】 [SDOI2009]晨跑
- StackOverflow内存溢出
- 关于数组、结构体的初始化
- flex模式文字溢出问题
- XML的解析
- VS2013新建动态库及使用
- 晨跑
- Vim无插件实现Markdown文件实时预览
- petuum框架的ssp模型简介
- char数据类型3-C语言学习笔记5
- 编码规范
- 探索智能一站式硬件开发
- AC自动机
- Jenkins搭建CI环境
- 读取数据的常用方法