背景

湖南师大附中成为百年名校之后,每年要接待大批的游客前来参观。学校认为大力发展旅游业,可以带来一笔可观的收入。

描述

学校里面有N个景点。两个景点之间可能直接有道路相连,用Dist[I,J]表示它的长度;否则它们之间没有直接的道路相连。这里所说的道路是没有规定方向的,也就是说,如果从I到J有直接的道路,那么从J到I也有,并且长度与之相等。学校规定:每个游客的旅游线路只能是一个回路(好霸道的规定)。也就是说,游客可以任取一个景点出发,依次经过若干个景点,最终回到起点。一天,Xiaomengxian决定到湖南师大附中旅游。由于他实在已经很累了,于是他决定尽量少走一些路。于是他想请你——一个优秀的程序员——帮他求出最优的路线。怎么样,不是很难吧?(摘自《郁闷的出纳员》)

格式

输入格式

对于每组数据:
第一行有两个正整数N,M,分别表示学校的景点个数和有多少对景点之间直接有边相连。(N<=100,M<=10000)
以下M行,每行三个正整数,分别表示一条道路的两端的编号,以及这条道路的长度。

输出格式

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

样例1

样例输入1[复制]

 
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

样例输出1[复制]

 
61
No solution.

限制

各个测试点1s

建模:

  将条边的权值初始化为-1,并且将两点间的最短路径初始化为MAX,用floyd 求最短路径。

思路:

  1.一个环中的最大结点为k(编号最大),与他相连的两个点为i,j,这个环的最短长度为g[i][k]+g[k][j]+i到j的路径中,所有结点编号都小于k的最短路径长度
  2.根据floyd的原理,在最外层循环做了k-1次之后,dist[i][j]则代表了i到j的路径中,所有结点编号都小于k的最短路径即求出最小环。

代码:

 #include <stdio.h>
#define MAX 9999999 int cost[][];
int dis[][]; int main(int argc, char const *argv[])
{
int n, m, i, j, k;
while(~scanf("%d%d", &n, &m)){
int ans = MAX;
for(i=; i<=n; ++i)
for(j=;j<=n;++j){
cost[i][j] = cost[j][i] = -;
dis[i][j] = dis[j][i] = MAX;
} for(i=;i<=m;++i){
int u, v, c;
scanf("%d%d%d", &u, &v, &c);
cost[v][u] = cost[u][v] = dis[u][v] = dis[v][u] = c;
} for(k=;k<=n;++k){
for(i=;i<k-;++i)
for(j=i+;j<k;++j){
int s;
if(cost[i][k] == - ||cost[k][j] == -) continue;
s = dis[i][j] + cost[i][k] + cost[k][j];
ans = ans > s? s:ans;
} for(i=;i<=n;++i)
for(j=;j<=n;++j){
int s;
s = dis[i][k] + dis[k][j];
dis[i][j] = dis[i][j] > s?s:dis[i][j];
}
} if(ans!=MAX) printf("%d\n", ans);
else printf("No solution.\n");
}
return ;
}

Vijos: P1046观光旅游的更多相关文章

  1. 【最短路】Vijos P1046 观光旅游

    题目链接: https://vijos.org/p/1046 题目大意: 给n个点(n<=100),m条无向边(m<=10000),问这张图的最小环长度. (注意:无自环,同一个点对之间的 ...

  2. vijosP1046 观光旅游(最小环)

    vijosP1046 观光旅游 链接:https://vijos.org/p/1046 [思路] Floyd求解最小环. [代码] #include<iostream> using nam ...

  3. Codevs 2611 观光旅游(floyed最小环)

    2611 观光旅游 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 某旅游区里面有N个景点.两个景点之间可能直接有道路相连,用 ...

  4. 【floyd求最小环】【Vijos 1046】【观光旅游】

    标签:图结构 最短路 题目大意:给你一个无向图,至少经过3个节点的简单回路(不能包括其他环) 一开始的思路:用一个NUM[i][j]表示i到j的最短路经过几个节点,显然解法不太优美,而且还是错的 再想 ...

  5. Vijos1046观光旅游[floyd 最小环]

    背景 湖南师大附中成为百年名校之后,每年要接待大批的游客前来参观.学校认为大力发展旅游业,可以带来一笔可观的收入. 描述 学校里面有N个景点.两个景点之间可能直接有道路相连,用Dist[I,J]表示它 ...

  6. Codevs 2611 观光旅游

     时间限制: 1 s 空间限制: 128000 KB 题目等级:钻石   题目描述 Description 某旅游区里面有N个景点.两个景点之间可能直接有道路相连,用a[i][j]表示它的长度,否则它 ...

  7. VIjosP1046观光旅游

    背景 湖南师大附中成为百年名校之后,每年要接待大批的游客前来参观.学校认为大力发展旅游业,可以带来一笔可观的收入. 描述 学校里面有N个景点.两个景点之间可能直接有道路相连,用Dist[I,J]表示它 ...

  8. vijos 1741 观光公交

    TMD这种题有什么意思啊...敲着都烦啊...感觉啥都没有用就敲完了...光考个贪心有什么意思啊. 反正不想写.NOIP遇到了...管他呢. #include<iostream> #inc ...

  9. NOIP模板整理计划

    先占个坑 [update]noip结束了,弃了 一.图论 1.单源最短路 洛谷P3371 (1)spfa 已加SLF优化 #include <iostream> #include < ...

随机推荐

  1. 【核心研究】消息队列_MessageQueue

    消息队列排队过程中的消息.这第一条消息将首先被处理.但假设消息本身指定要处理的时间.我们必须等待,直到时间的消息处理能力.新闻MessageQueue正在使用Message类的表示,队列中的邮件保存结 ...

  2. ViewPager用法

    第一图:          页面中填充内容是随机关键词飞入和飞出动画效果,随后会更新,如今请先无视吧 ---2015-02-27--- 两年后最终更新了,网上都能搜到的,哎 无奈太懒http://bl ...

  3. POJ 3013 Big Christmas Tree(最短Dijkstra+优先级队列优化,SPFA)

    POJ 3013 Big Christmas Tree(最短路Dijkstra+优先队列优化,SPFA) ACM 题目地址:POJ 3013 题意:  圣诞树是由n个节点和e个边构成的,点编号1-n. ...

  4. C#中反射的概念及其使用(转)

    提纲:1. 什么是反射2. 命名空间与装配件的关系3. 运行期得到类型信息有什么用4. 如何使用反射获取类型5. 如何根据类型来动态创建对象6. 如何获取方法以及动态调用方法7. 动态创建委托 1.什 ...

  5. oracle_oracle中修改日期的显示格式

    我的现在的日期格式是          ,要改成英文的需要输入一下命令: ALTER SESSION SET NLS_DATE_LANGUAGE=AMERICAN; 修改后变为: 同样也得若是英文要想 ...

  6. Python美女[从新手到高手]--阅读&quot;见个面问题 HashMap 储存方法&quot;联想

    今伯乐在线 上看到一篇文章.一道面试题看 HashMap 的存储方式.也就是问: 在 HashMap 中存放的一系列键值对,当中键为某个我们自己定义的类型.放入 HashMap 后,我们在外部把某一个 ...

  7. oracle处理节点之间的父子关系

    通常当与树的结构之间的关系处理,这是一个很复杂的事情,我们可以通过程序代码去逐层遍历父或子节点,这样做的缺点是很明显,效率不高,操作复杂性是比较大的.而当我们使用Oracle当数据库,我们可以有一个简 ...

  8. UVa 10533 - Digit Primes

    题目:输出给定区间中,本身是素数,而且这个数的各位之和也是素数的数(称为位素数)的个数. 分析:数论.首先利用筛法,求出1000000内的全部的素数:然后在利用生成的素数表, 推断每一个数是不是各位之 ...

  9. s3c2440 的 rtc 操作

    实时时钟(RTC)其主要功能是电源故障的制度下,使用后备电源,时钟继续.为了不浪费时间信息. s3c2440内部集成了RTC模块,并且用起来也十分简单. 其内部的寄存器BCDSEC,BCDMIN,BC ...

  10. 被FusionCharts V3.4抛弃的东西

    从FusionCharts Suite XT V3.4開始,FusionCharts产品家族放弃了Flash,发展成为一个纯JavaScript的图表组件.前面我们介绍了怎样升级到V3.4,接下来让我 ...