hdu 2255 km入门题
来源:互联网 发布:淘宝卖家寄寿衣怎么办 编辑:程序博客网 时间:2024/05/18 13:46
#include<stdio.h> #include<string.h> #include<stdlib.h> #define N 305 #define inf 0x3fffffff int n,map[N][N],lx[N],ly[N],match[N]; bool s[N],t[N];//s[]、t[]为左/右第i个点是否在匈牙利树中int min(int a,int b) { if(a>b)return b; return a; } int max(int a,int b) { if(a>b)return a; return b; } bool find(int u)//匈牙利,匹配(找增广路) { int i; s[u]=true; for(i=1;i<=n;i++) { if(!t[i]&&lx[u]+ly[i]==map[u][i]) { t[i]=true; if(match[i]==-1||find(match[i])) { match[i]=u;//u跟i匹配 return true; } } } return false; } int KM() { int ans=0; memset(match,-1,sizeof(match)); memset(lx,0,sizeof(lx)); memset(ly,0,sizeof(ly)); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) lx[i]=max(lx[i],map[i][j]);//初始化S顶标为最大权 for(i=1;i<=n;i++)//匹配每一个点 { while(1) { memset(s,false,sizeof(s)); memset(t,false,sizeof(t)); if(find(i))break;//匹配成功 else//匹配失败,找最小值 { int a=inf; for(int j=1;j<=n;j++) if(s[j])//j在匈牙利树中 { for(int k=1;k<=n;k++) if(!t[k])//k在匈牙利树外 a=min(a,lx[j]+ly[k]-map[j][k]);//顶标修改量,使得权值减小最小 } for(j=1;j<=n;j++)//修改顶标 { if(s[j])lx[j]-=a;//保证至少有一条边可以加入 if(t[j])ly[j]+=a;//保证原来匹配的边修改后依然可以匹配 } } } } for(i=1;i<=n;i++)//权值相加 ans+=map[match[i]][i]; return ans; } int main() { int i,j; while(scanf("%d",&n)!=-1) { for(i=1;i<=n;i++) for(j=1;j<=n;j++) scanf("%d",&map[i][j]); printf("%d\n",KM()); } return 0; }
0 0
- hdu 2255 km入门题
- HDU 2255 — 奔小康赚大钱 KM入门题
- HDU 2255 KM模版题
- 奔小康赚大钱 hdu 2255 KM算法入门题目
- HDU 2255 奔小康赚大钱 (km入门)
- HDU 2255(KM 模板题)
- HDU 2255 KM算法
- HDU 2255 (KM()算法)
- HDU-2255(KM算法)
- 【HDU 2255】【KM算法模板题+KM算法详解】 奔小康赚大钱
- hdu 2255KM算法模板
- hdu 2255(KM算法模板)
- HDU 2255 (KM算法)
- hdu 2255 KM算法板子
- HDU 3722 KM模板题
- hdu 2255 奔小康赚大钱【KM模板题】
- hdu 2255 奔小康赚大钱 KM算法 模板题
- HDU 2255 奔小康赚大钱 KM模板题
- poj 3041
- HDU 1908 Double Queue(set)
- JQuery时间格式化插件--扩展JQuery
- ny 436 sum of all integer numbers
- 我的技术博客开通了
- hdu 2255 km入门题
- hdu1394Minimum Inversion Number_forces(segment_tree)
- 《深度探索C++对象模型》读书笔记之Function语意学
- POJ 2018 Best Cow Fences
- 通过网站微调提升排名和转化率
- 【IOS】使用手势对UIImageView进行缩放、旋转和移动
- poj 3009 Curling 2.0 【DFS】
- ubuntu关机图标不见了
- 数据建模例子