方法就是构造最小包含G的欧拉图,首先得出所有奇点,然后用最短路匹配,所以要先floyd处理,得出最优匹配我的方法比较搓,是直接枚举的。。

#include<cstdio>
#include<cstring>
const int inf=99999999;
int n,m;
int u[20],d[20],mp[20][20];
int min(int a,int b)
{return a<b?a:b;
}
void floyd()
{for(int i=0;i<n;i++)for(int j=0;j<n;j++)for(int k=0;k<n;k++){if(i==j||i==k||j==k)continue;if(mp[i][k]==inf||mp[k][j]==inf)continue;mp[i][j]=min(mp[i][k]+mp[k][j],mp[i][j]);}
}
int gao()
{int i,j,k,mx=inf;for(i=0;i<n;i++)if(!u[i])break;if(i==n)return 0;u[i]=1;for(int j=i+1;j<n;j++)if(!u[j])u[j]=1,mx=min(mx,gao()+mp[i][j]),u[j]=0;u[i]=0;return mx;
}
int main()
{while(scanf("%d",&n),n){int ans=0;memset(u,0,sizeof(u));memset(d,0,sizeof(d));scanf("%d",&m);for(int i=0;i<n;i++)for(int j=0;j<n;j++)mp[i][j]=inf;for(int i=1;i<=m;i++){int a,b,c;scanf("%d%d%d",&a,&b,&c);a--,b--;ans+=c;mp[a][b]=min(mp[a][b],c);mp[b][a]=mp[a][b];d[a]++,d[b]++;}floyd();for(int i=0;i<n;i++)if(!(d[i]&1))u[i]=1;printf("%d\n",ans+gao());}return 0;
}

中国邮路问题 ZOJ1903相关推荐

  1. Cards Ext与中国邮路问题

    这个题我大概永远都不会出出来了所以我就把它写在博客里吧 如果有人没题出可以拿走坑害同学 题目大意:给定一个长度为n(n≤400)n(n\leq 400)的0101序列,每次你可以选择一个区间[l,r] ...

  2. 中国邮路问题编程求解

    中国邮路问题(Chinese Postman Problem)是一个非常经典的图论问题:一个邮递员送信,要走完他负责投递的全部街道(所有街道都是双向通行的且每条街道可以经过不止一次),完成任务后回到邮 ...

  3. Chinese Postman Problem Aizu - DPL_2_B(无向图中国邮路问题)

    题意: 带权无向图上的中国邮路问题:一名邮递员需要经过每条边至少一次,最后回到出发点,一条边多次经过权值要累加,问最小总权值是多少.(2 <= N <= 15, 1 <= M < ...

  4. The Chinese Postman Problem HIT - 2739(有向图中国邮路问题)

    无向图的问题,如果每个点的度数为偶数,则就是欧拉回路,而对于一个点只有两种情况,奇数和偶数,那么就把都为奇数的一对点  连一条  边权为原图中这两点最短路的值  的边  是不是就好了 无向图中国邮路问 ...

  5. HOJ 2739 The Chinese Postman Problem 带权有向图上的中国邮路问题

    [题目大意]  带权有向图上的中国邮路问题:一名邮递员需要经过每条有向边至少一次,最后回到出发点,一条边多次经过权值要累加,问最小总权值是多少.(2 <= N <= 100, 1 < ...

  6. HOJ 2739 网络流【带权有向图上的中国邮路问题】

    [带权有向图上的中国邮路问题] #include<cstring> #include<cstdio> #include<algorithm> #include< ...

  7. 中国邮路问题的解决(数据结构课程设计)

    题目描述: 邮递员的工作是每天在邮局里选出邮件,然后送到他所管辖的客户中,再返回邮局.自然地,若他要完成当天的投递任务,则他必须要走过他所投递邮件的每一条街道至少一次.问怎样的走法使他的投递总行程为最 ...

  8. 数据结构——中国邮路问题

    研究契机 本学期学校开设数据结构课程,研究了一下中国邮路问题,以供自己复习参考. 中国邮路问题 中国邮路问题是中国学者于20世纪50年代提出的一种典型的组合优化问题,后在国际上被称为中国邮路问题(Ch ...

  9. 中国邮路问题邮递员问题欧拉路径图论C++

    下载链接:https://download.csdn.net/download/RONNIE_Zz/13094843 通路:在无向图中由点边交替组成的序列就是通路(如果这个图是简单的,那么也可以使用点 ...

最新文章

  1. 在Foreda8上试安装Apchehttpd-2.4.6.tar.gz
  2. 回顾2013 - 技术上
  3. 了解你所不知道的SMON功能(五):Recover Dead transaction
  4. 宝塔 + 百度BCC + centos + vue + 搭建nginx服务器
  5. 搜狗输入法自定义短语(克制名词解释、背诵类问题)
  6. js设置html不可编辑状态,JS_设置弹出页面的地址栏不可编辑
  7. android 媒体的uri,安卓 - 从相对路径+显示名称中获取媒体的URI或ID
  8. working-with-php-and-beanstalkd
  9. JSON.parse和eval的区别
  10. 【功能测试】-【黑盒测试用例】
  11. Linux内核学习书籍
  12. 盘点 4 个开源小游戏
  13. Vue单文件不兼容IE解决方法
  14. 5-20 打印九九口诀表 (15分)
  15. SQL 左外连接,右外连接,全连接,内连接 4种连接的区别
  16. HFS+ vs APFS
  17. 计算机促销策划方案,电脑促销活动方案 2017暑假电脑促销活动方案
  18. rm: cannot remove `/usr/local/tmp/‘: Directory not empty
  19. SSL Tomcat 双向认证
  20. linux下安装deb程序

热门文章

  1. python中image什么意思_浅谈python图片处理Image和skimage的区别
  2. SpringBoot的四种异步处理,写这篇文章,我自己先学到了
  3. 从零写一个Asp.net core手脚架 (异常处理)
  4. C | 进程和线程的区别
  5. 兼容手机PC,点击即可复制文本内容到剪切板插件clipboard.js
  6. linux设置ramdisk模块,Linux系统中的RAMdisk设置
  7. 差分进化算法和遗传算法的区别
  8. jdbc:oracle:thin:@localhost:1521:orcl和jdbc:oracle:thin:@localhost:1521/orcl的区别
  9. android 开发实例 底部导航栏(1)
  10. Webstorm和Skype以及flash的安装