UVA 1349 Optimal Bus Route Design(KM判环)
2017-01-08 20:06
387 查看
#include<iostream> #include<cstring> using namespace std; const int maxn=100+5; const int inf=(1<<30); int w[maxn][maxn],n; int lx[maxn],ly[maxn]; int Left[maxn]; bool s[maxn],t[maxn]; bool match(int i) { s[i]=true; for(int j=1;j<=n;j++) if(lx[i]+ly[j]==w[i][j]&&!t[j]){ t[j]=true; if(!Left[j]||match(Left[j])){ Left[j]=i; return true; } } return false; } void update() { int a=(1<<30); for(int i=1;i<=n;i++) if(s[i]) for(int j=1;j<=n;j++) if(!t[j]) a=min(a,lx[i]+ly[j]-w[i][j]); for(int i=1;i<=n;i++){ if(s[i]) lx[i]-=a; if(t[i]) ly[i]+=a; } } void KM() { for(int i=1;i<=n;i++){ Left[i]=lx[i]=ly[i]=0; for(int j=1;j<=n;j++) lx[i]=max(lx[i],w[i][j]); } for(int i=1;i<=n;i++){ for(;;) { for(int j=1;j<=n;j++) s[j]=t[j]=0; if(match(i)) break;else update(); } } } int main() { while(scanf("%d",&n)&&n) { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) w[i][j]=-inf; for(int i=1;i<=n;i++){ int j,x; while(scanf("%d",&j)&&j) { scanf("%d",&x); w[i][j]=max(w[i][j],-x);//坑点,HDU1853也有这个坑点,两个点同一方向有多个权值 } } KM(); bool ok=true; int ans=0; for(int i=1;i<=n;i++){ ans+=-w[Left[i]][i]; } for(int i=1;i<=n;i++) if(w[Left[i]][i]==-inf) {ok=false;break;} if(ok) printf("%d\n",ans); else printf("N\n"); } return 0; }
相关文章推荐
- UVA 1349 Optimal Bus Route Design
- (beginer) UVA 最小费用流 1349 Optimal Bus Route Design
- UVA1349 Optimal Bus Route Design 拆点法+最小费用最佳匹配
- Uva-1349-Optimal Bus Route Design
- UVa 1349 Optimal Bus Route Design
- UVA 1349 Optimal Bus Route Design (最小费用流 -- 二分图最小权完美匹配)
- UVA 1349 Optimal Bus Route Design 最优公交路线(最小费用流,拆点)
- UVA1349:Optimal Bus Route Design
- UVA 1349 Optimal Bus Route Design——最小权完美匹配
- UVA 1349 Optimal Bus Route Design 最小费用流+拆点
- UVA-1349 - Optimal Bus Route Design(KM最佳完美匹配)
- UVA 1349 Optimal Bus Route Design(最小权完美匹配)
- UVa1349 Optimal Bus Route Design(二分图最佳完美匹配)
- uva-1349 Optimal Bus Route Design(最小费用最大流)
- UVA 1349 - Optimal Bus Route Design(KM完美匹配)
- UVa 1349 (二分图最小权完美匹配) Optimal Bus Route Design
- uva 1349 - Optimal Bus Route Design(完美匹配)
- UVa #1349 Optimal Bus Route Design (例题11-10)
- UVa 1349 Optimal Bus Route Design (最佳完美匹配)
- uva1349 Optimal Bus Route Design 费用流,二分图匹配