hdu 1853
来源:互联网 发布:企业数据集成 编辑:程序博客网 时间:2024/05/22 06:54
#include<stdio.h>#include<string.h>#define inf 999999999#define N 200int map[N][N],mark[N],lx[N],ly[N],link[N],s[N],n;int max(int a,int b){return a>b?a:b;}int min(int a,int b){return a<b?a:b;}int find(int k){int i;s[k]=1;for(i=1;i<=n;i++){if(!mark[i]&&lx[k]+ly[i]==map[k][i]){mark[i]=1;if(!link[i]||find(link[i])){link[i]=k;return 1;}}}return 0;}int km(){int i,j,k,a,ans;memset(ly,0,sizeof(ly));for(i=1;i<=n;i++){lx[i]=map[i][1];for(j=2;j<=n;j++) lx[i]=max(lx[i],map[i][j]);}memset(link,0,sizeof(link));for(i=1;i<=n;i++){while(1){a=inf; memset(s,0,sizeof(s)); memset(mark,0,sizeof(mark));if(find(i))break;else{for(j=1;j<=n;j++){if(s[j]){for(k=1;k<=n;k++) if(!mark[k]) a=min(a,lx[j]+ly[k]-map[j][k]);}}if(a==inf)return 1; for(j=1;j<=n;j++) { if(s[j])lx[j]-=a; if(mark[j])ly[j]+=a; }}}}ans=0;for(i=1;i<=n;i++){if(map[link[i]][i]==-inf)//这里注意return 1;elseans=ans+map[link[i]][i];}return ans;}int main(){int i,j,m,a,b,c;while(scanf("%d%d",&n,&m)!=EOF){for(i=1;i<=n;i++)for(j=1;j<=n;j++) map[i][j]=-inf;for(i=1;i<=m;i++){scanf("%d%d%d",&a,&b,&c);if(-c>map[a][b])map[a][b]=-c;}printf("%d\n",-km());}return 0;}//如果存在完美匹配的话,每个点有进有出,自然存在环。
0 0
- hdu 1853
- hdu 1853
- hdu 1853
- hdu 1853
- hdu 3488 && hdu 3435 && 1853
- hdu 1853 | hdu 3488 | hdu3435
- HDU 3488 HDU 3435 HDU 1853 | 费用流
- hdu 3488 Tour【KM】同hdu 1853
- HDU 1853 Cyclic Tour & HDU 3488 Tour
- HDU-1853 Cyclic Tour
- hdu 1853 Cyclic Tour
- hdu 1853 费用流
- hdu 1853 KM算法
- HDU 1853Cyclic Tour
- hdu
- hdu
- HDU
- hdu ()
- 元素类型为 "session-factory" 的内容必须匹配 "(property*,mapping*,(class-cach....解决方法
- Win7运行vc++6.0打开显示Microsoft(R) Developer Studio已停止工作解决方法
- 父子页面之间跨域通信的方法
- 快速排序——C++实现
- hdu 1533
- hdu 1853
- OC内存管理初级
- ADO.NET对数据库的访问
- hdu 3395
- matlab 函数说明--fspecial
- Ubuntu 上编译部署LAMP
- mysql binlog row格式查看
- hdu 2853
- 免费馅饼