时间限制: 1 s  空间限制: 128000 KB  题目等级:钻石
 
题目描述 Description

某旅游区里面有N个景点。两个景点之间可能直接有道路相连,用a[i][j]表示它的长度,否则它们之间没有直接的道路相连。这里所说的道路是没有规定方向的,也就是说,如果从i到j有直接的道路,那么从j到i也有,并且长度与之相等。

旅游区规定:每个游客的旅游线路只能是一个回路(好霸道的规定)。也就是说,游客可以任取一个景点出发,依次经过若干个景点,最终回到起点。一天,Smart决定到这个景区来旅游,由于他实在已经很累了,于是他决定尽量少走一些路。

他想请你帮他求出最优的路线。怎么样,不是很难吧?

输入描述 Input Description

输入有多组数据。对于每组数据:

第一行有两个正整数N,M,分别表示景点个数和有多少对景点之间直接有边相连(N≤100,M≤10000);

接下来M行,每行三个正整数,分别表示一条道路的两端的编号,以及这条道路的长度(长度≤1000)。

输出描述 Output Description

对于每组数据,输出一行,如果该回路存在,则输出一个正整数,表示该回路的总长度;否则输出“No solution.”(不要输出引号)

样例输入 Sample Input

5 7

1 4 1

1 3 300

3 1 10

1 2 16

2 3 100

2 5 15

5 3 20

4 3

1 2 10

1 3 20

1 4 30

样例输出 Sample Output

61

No solution.

数据范围及提示 Data Size & Hint

N≤100,M≤10000

长度≤1000

 #include<iostream>
#include<cstdio>
#include<cstring>
#define INF 100000000
using namespace std;
int n,m;
int map[][],dis[][];
int main()
{
while((scanf("%d%d",&n,&m))==)
{
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
map[i][j]=INF,dis[i][j]=INF;
for(int i=;i<=m;i++)
{
int x,y,z;
cin>>x>>y>>z;
if(map[x][y]>z)
map[x][y]=map[y][x]=z,dis[x][y]=dis[y][x]=z;
} int minn=INF;
for(int k=;k<=n;k++)// Floyed
{
for(int i=;i<=k-;i++)
for(int j=i+;j<=k-;j++)
minn=min(minn,dis[i][j]+map[j][k]+map[k][i]);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
if(dis[i][j]>dis[i][k]+dis[k][j])
dis[i][j]=dis[i][k]+dis[k][j];
}
if(minn!=INF)
printf("%d\n",minn);
else printf("No solution.\n");
}
return ;
}

最小环 ~背模板

最新文章

  1. Java学习笔记 04 类和对象
  2. SQLServer(MSSQL)、MySQL、SQLite、Access相互迁移转换工具 DB2DB v1.4
  3. bootstrap fileinput-上传回调
  4. One Class SVM, SVDD(Support Vector Domain Description)(转)
  5. unity, 取消ugui button响应键盘
  6. 字符编解码的故事 字符集 GBK GB2312 GB18030 Unicode 的由来和区别
  7. linux下MySQL安装登录及操作
  8. VS2012 无法启动IIS Express Web服务器的解决方案
  9. window.open窗口居中和窗口最大化
  10. Android窗口管理服务WindowManagerService计算窗口Z轴位置的过程分析
  11. 不用Root权限获取已经安装的Apk安装包
  12. Hadoop部署配置文件
  13. 动态创建 script 实现跨域请求数据
  14. 使用MyBatis集成阿里巴巴druid连接池(不使用spring)
  15. jQuery.proxy()的用法
  16. Git知识总览(六) Git分支中的远程操作实践
  17. 第二个spring冲刺第8天
  18. LDAP落地实战(四):Jenkins集成OpenLDAP认证
  19. C语言第九节进制
  20. 前端html第三方登录集合,微信,微博,QQ

热门文章

  1. 教你用Cocosdx导出安卓安装文件(.apk)(一)
  2. 文件系统缓存dirty_ratio与dirty_background_ratio两个参数区别
  3. Linux编程之《只运行一个实例》
  4. 基于C#实现的HOOK键盘钩子实例代码
  5. MyBatis 环境搭建
  6. C#三大支柱之多态
  7. [JavaEE] SSH框架笔记_S.S.H框架各自的优缺点
  8. Android 高级UI设计笔记12:ImageSwitcher图片切换器
  9. android中的一些问题
  10. Python一些难以察觉的错误