#include<stdio.h>
#include<string.h>
#include<iostream>
#define inf 0x3fffffff
#define N 510
int n,ma[N][N],combine[N];
int seach(int &s,int &t) {
int vis[N],i,j,tm,maxx,w[N];
memset(vis,0,sizeof(vis));
memset(w,0,sizeof(w));
tm=10000;
for(i=0;i<n;i++) {
maxx=-inf;
for(j=0;j<n;j++)
if(!vis[j]&&!combine[j]&&maxx<w[j]) {//找到最大值
maxx=w[j];
tm=j;
}
if(t==tm) {return w[t];}//最后t和tm相等
vis[tm]=1;
s=t;t=tm;
for(j=0;j<n;j++)//
if(!vis[j]&&!combine[j])
w[j]+=ma[t][j];
}
return w[t];
}
int mincut() {
int mi=inf,ans,i,s,t,j;
memset(combine,0,sizeof(combine));
for(i=0;i<n-1;i++) {//只需要找n-1次
s=-1;t=-1;
ans=seach(s,t);//找到t和t的前一个点s
combine[t]=1;//移除
if(ans<mi)mi=ans;
for(j=0;j<n;j++) {//将t合并到s点
ma[s][j]+=ma[t][j];
ma[j][s]+=ma[j][t];
}
}
return mi;
}
int main() {
int m,i,j,k;
while(scanf("%d%d",&n,&m)!=EOF) {
memset(ma,0,sizeof(ma));
while(m--) {
scanf("%d%d%d",&i,&j,&k);
ma[i][j]+=k;ma[j][i]+=k;
}
printf("%d\n",mincut());
}
return 0;
}

最新文章

  1. HTML中的标记-遁地龙卷风
  2. Ubuntu 使用Cisco VPN、AnyConnect、OpenConnect的方法。
  3. 开发错误11:Configuration with name ‘default’ not found
  4. mysql小误区关于set global sql_slave_skip_counter=N命令
  5. BpBinder 转换为 BpCameraService 流程
  6. 15.python笔记之psutil模块
  7. 【风马一族_windom】 批量修改相同文件类型的后缀
  8. [原创]PostgreSQL Plus Advince Server在 HA环境中一对多的Stream Replication配置(三)
  9. UITableView性能优化
  10. JavaScript js无间断滚动效果 scrollLeft方法 使用模板
  11. js字符串转日期,js字符串解析成日期,js日期解析, Date.parse小时是8点,Date.parse时间多了8小时
  12. Tomcat迁移到WebsphereURL获取中文参数乱码问题
  13. Java获取键盘输入
  14. selenium和webdriver区别
  15. C#调用java方法踩坑记
  16. sql基本的增删查改语句
  17. 如何用ftp上传静态网站到虚拟空间
  18. 常用的Eclipse 快捷键
  19. input按钮去掉默认样式
  20. tr字符串的梗

热门文章

  1. 轻快的vim(四):修改
  2. netpbm开机logo制作工作【转】
  3. P1127 词链
  4. 关于作者&amp;情况
  5. Python迭代与递归方法实现斐波拉契数列
  6. IO编程 - 转载自廖雪峰的博文
  7. MobX入门
  8. javascript 的逻辑中断(短路操作)
  9. 搭建 Lepus 天兔 监控MySQL
  10. FBX骨骼坐标系与模型坐标系的关系