【Step1】【floyd】poj1125-Stockbroker Grapevine

题目链接

题目大意

一个有n个点的图中,求一个点,使得这个点到其他点的最短路的最长距离最短。

输入数据中,有多组测试。每组测试第一行为n,接下来n行,每行第一个x,xi表示第i个点和x个点有路径。接下来x个数对a,b表示i到a的代价为b

最后输出这个点和最长距离。

 

这道题是显而易见的最短路了。但是我们发现这个题的起点不确定。所以不是单源最短路,不能用SPFA

这里介绍另外一种算法:floyd算法。

floyd算法主要解决的是多源最短路问题,范围比SPFA更广,但时间复杂度是O(n^3)。再看题目n≤100,符合条件。

floyd算法,简而言之,就是找i,j两个点,然后找一个中间点k,如果i->k+k->j的最短路径比当前i->j更短,就更新i->j的最短路。

代码如下:

for(int k=1;k<=n;k++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(f[i][j]>f[i][k]+f[k][j])//f存i->j的最短路{f[i][j]=f[i][k]+f[k][j];}}}}  

最后统计答案时,对于每一个点i,看看它到其他点的最短路的最大值。这样,这道题的代码就呼之欲出了。

参考代码

#include<cstdio>
#include<cstdlib>
#include<cstring>
int n;
int f[105][105];
int main()
{while(1){scanf("%d",&n);if(n==0)break;memset(f,63,sizeof(f));for(int i=1;i<=n;i++){f[i][i]=0;int x;scanf("%d",&x);for(int j=1;j<=x;j++){int soy1,soy2;scanf("%d %d",&soy1,&soy2);f[i][soy1]=soy2;}}for(int k=1;k<=n;k++){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){if(f[i][j]>f[i][k]+f[k][j]){f[i][j]=f[i][k]+f[k][j];}}}}/*for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)printf("%d ",f[i][j]>10000?-1:f[i][j]);printf("\n");}*/int ans=2147483647,ans2=-1;for(int i=1;i<=n;i++){int tt=-1;for(int j=1;j<=n;j++){if(f[i][j]>999999){tt=-1;break;}if(f[i][j]>tt)tt=f[i][j];}if(tt!=-1 && tt<ans){ans=tt;ans2=i;}}if(ans2==-1)printf("disjoint\n");else printf("%d %d\n",ans2,ans);}return 0;
}
View Code

 

转载于:https://www.cnblogs.com/AFOer-lhy/p/7826007.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268106.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

只要付出就有回报

今天是个特别的日子——2010年10月10日——101010,。早上上班的路上就看到很多结婚的车队&#xff0c;很是壮观。我的小表妹也是今天结婚&#xff0c;可惜要上班无法参加她的婚礼。据说很是热闹&#xff0c;人不多&#xff0c;4桌洋人&#xff0c;4桌国人。呵呵。。。表妹在英国…

和硕裁员4.5万真相调查:工人入不敷出无奈走人

和硕裁员4.5万真相调查:工人入不敷出无奈走人http://fellow.51cto.com 2008-12-12 16:40 佚名 每日经济新闻 我要评论(0)摘要&#xff1a;业界知情人士称&#xff0c;和硕南汇、苏州两厂“裁员过半”&#xff1b;但其母公司华硕公司称&#xff0c;“我们的代工厂无任何裁员…

Maven 异常

Archive for required library: *****org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar in project SpringBootTest cannot be read or is not a valid ZIP file出现以上错误&#xff0c;表示下载的jar包不可多&#xff0c;多半原因是下载过程中中途网络中断或其它原…

Bigtable:一个分布式的结构化数据存储系统(转)

为了方便部分博友和我自己&#xff0c;我特地将BigTable的中文版论文转载到本博客&#xff0c;原文地址在Google Labs&#xff0c;译者为alex。 Wiki百科关于 BigTable的解释&#xff1a; http://en.wikipedia.org/wiki/BigTable BigTable 英文原版&#xff1a;http://labs.goo…

spring面试BeanFactory的作用

DefaultListableBeanFactory结构

Bean的生命周期回掉方法

上面三个是在bean的生命周期的初始化调用的 下面三个是在bean的生命周期的销毁调用的

【STM32 .Net MF开发板学习-18】GPRS遥控智能小车

有了Wifi间接控制智能小车的经验&#xff0c;很自然的想到&#xff0c;也可以通过GPRS远程遥控智能小车&#xff0c;因为从通信原理上看&#xff0c;二者其实没有什么本质的不同&#xff0c;都是基于Socket的TCP通信&#xff0c;其控制环节如下&#xff1a; 手机 > GPRS&…

在RHEL5下实现RAID5磁盘阵列

在Linux系统中做RAID,磁盘阵列的设备可以是一块磁盘中的三个以上的分区&#xff0c;也可以是三块或以上的磁盘。本文主要以几块磁盘为例&#xff0c;来实现在RAID5。实验说明&#xff1a;在VMware中进行&#xff0c;系统中有一块磁盘sda,新添加6块SCSI磁盘&#xff0c;分别为sd…

BeanFactoryPostProcessor实现在所有的BeanDefinition注册完之后帮我们进行扩展(调用)

实现BeanFactoryPostProcessor接口 spring会在所有的BeanDefinition注册完之后帮我们进行扩展(调用) BeanFactory的后置处理器就是BeanFactoryPostProcessor接口&#xff0c;该接口有一个方法postProcessBeanFactory&#xff0c;这个方法会在BeanFactory初始化之后调用&#…

第七周作业

#include<stdio.h> int main(){int i,N;scanf("%d",&N);double s0;int flag-1;for(i1;i<N;i){ flag-flag; ssi*1.0/(2*i-1)*flag; } printf("%0.3f",s); return 0; } 7-3&#xff1a; 设计思路&#xff1a; &#xff08;1&#xff09;定义变量…

使用Exchange 2007的几个注意事项

http://wangchunhai.blog.51cto.com/225186/152384Exchange Server 2007是Microsoft推出的电子邮件服务器软件&#xff0c;该产品与Exchange Server 2003的改进很大&#xff0c;第一次使用该产品的用户&#xff0c;会碰到一些问题。本文将为大家介绍Exchange 2007中“比较困惑”…

exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException

原因&#xff1a; Spring Boot异常org.springframework.beans.factory.NoUniqueBeanDefinitionException&#xff1a;没有可用的合格Bean类型&#xff1a;预期匹配单个Bean&#xff0c;但是匹配到了多个&#xff0c;当该bean被自动装配时与Spring Boot应用程序上下文中的两个或…

大数据平台助力核与辐射安全监管

大数据平台助力核与辐射安全监管 核能开发利用是大国发展的战略必争之地&#xff0c;也是调整能源结构、应对气候变化和建设生态文明&#xff0c;进而确保国家安全的重要手段。虽然我国核与辐射安全监管能力不断提升&#xff0c;但仍面临诸多挑战。 为适应新形势和新要求&#…