[BZOJ1061][Noi2008]志愿者招募
2015-07-20 17:55
337 查看
原题地址
BYVOID犇题解:https://www.byvoid.com/blog/noi-2008-employee/
太神了OLZ
膜BYVOID大神OLZ
MS这题是GX省选必考题,GX的注意了233
AC code:
BYVOID犇题解:https://www.byvoid.com/blog/noi-2008-employee/
太神了OLZ
膜BYVOID大神OLZ
MS这题是GX省选必考题,GX的注意了233
AC code:
#include <cstdio> #include <queue> #include <vector> using namespace std; const int N=10010; const int INF=1<<28; int n,m,S,T,ans; int d ,s ,t ,c ; struct Edge{ int u,v,c,f,a; Edge(int u,int v,int c,int f,int a):u(u),v(v),c(c),f(f),a(a) {} }; vector<Edge> E; vector<int> G ; void addedge(int u,int v,int c,int a){ E.push_back(Edge(u,v,c,0,a)); E.push_back(Edge(v,u,c,c,-a)); G[u].push_back(E.size()-2); G[v].push_back(E.size()-1); } void read(){ scanf("%d%d",&n,&m); S=n+2;T=S+1; for(int i=1;i<=n;i++) scanf("%d",&d[i]); for(int i=1;i<=m;i++) scanf("%d%d%d",&s[i],&t[i],&c[i]); for(int i=1;i<=m;i++) addedge(s[i],t[i]+1,INF,c[i]); for(int i=2;i<=n+1;i++) addedge(i,i-1,INF,0); for(int i=1;i<=n+1;i++){ if(d[i]-d[i-1]<0) addedge(i,T,d[i-1]-d[i],0); else addedge(S,i,d[i]-d[i-1],0); } } bool SPFA(){ queue<int> Q; int flow=INF; int mina ,num ; bool inq ={0}; for(int i=1;i<=T;i++) mina[i]=INF; mina[S]=0; Q.push(S); while(!Q.empty()){ int x=Q.front();Q.pop(); inq[x]=0; for(int i=0;i<G[x].size();i++){ Edge e=E[G[x][i]]; if(e.c==e.f||mina[x]+e.a>=mina[e.v]) continue; num[e.v]=G[x][i]; mina[e.v]=mina[x]+e.a; if(!inq[e.v]){ inq[e.v]=1; Q.push(e.v); } } } for(int i=T;i!=S;i=E[num[i]].u){ int f=E[num[i]].c-E[num[i]].f; flow=f<flow?f:flow; } for(int i=T;i!=S;i=E[num[i]].u){ E[num[i]].f+=flow; E[num[i]^1].f-=flow; ans+=E[num[i]].a*flow; } if(mina[T]==INF) return 0; return 1; } int main(){ read(); while(1){ bool flag=SPFA(); if(!flag) break; } printf("%d",ans); return 0; }
相关文章推荐
- Android 5.0.1 Layout_toLeftOf不生效
- 设计模式_装饰模式
- Java读取文件内容的几种方式
- Copy Constructor
- Flyweight Pattern
- 总结CSS3新特性(Transform篇)
- Java读取文件内容的几种方式 分类: Java 2015-07-20 17:55 2人阅读 评论(0) 收藏
- Hadoop2.6.0学习笔记(十)SPOF解决方案QJM
- android 通过ApplicationInfo 从androidmanifest 中的application中读取信息。
- 输出*的菱形图案
- 为设计师而生-导航设计总结
- org.apache.catalina.core.StandardContext startInternal SEVERE: Error listenerStart
- navicat premium 连接sqlserver 端口号配置
- NSString 截取字符串
- 七、图形与图像处理(1)
- 怎么在 html 中 动态的加载一个 script
- 管理REDO LOG记录
- 拼接SQL语句缺少“break”
- Redis常用命令
- 怒刷leetcode的题目(1)237、104、136、100