杭电find the safest road(最短路径,dijkstra,floyd)

Maltab GUI课程设计——网络爬虫程序(基金连涨连跌提醒) 阅读详情

find the safest road

Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 9502    Accepted Submission(s): 3360


Problem Description
XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边 ,现在8600 想出去旅游,面对这这么多的路,他想找一条最安全的路。但是8600 的数学不好,想请你帮忙 ^_^
 

Input
输入包括多个测试实例,每个实例包括:
第一行:n。n表示城市的个数n<=1000;
接着是一个n*n的矩阵表示两个城市之间的安全系数,(0可以理解为那两个城市之间没有直接的通道)
接着是Q个8600要旅游的路线,每行有两个数字,表示8600所在的城市和要去的城市
 

Output
如果86无法达到他的目的地,输出"What a pity!",
其他的输出这两个城市之间的最安全道路的安全系数,保留三位小数。
 

Sample Input
3 1 0.5 0.5 0.5 1 0.4 0.5 0.4 1 3 1 2 2 3 1 3
 

Sample Output
0.500 0.400 0.500
 


最短路径问题,当然有三种方法(dijkstra,SPFA,floyd),但是吧,显然这个题给出了map,用spfa邻接表显得有些麻烦了,所以这里只给出dijkstra和floyd的代码,如果实在想要spfa的可以下方留言,我会补上的!嘿嘿,楼主好人哦!


dijkstra:


#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
double  map[1010][1010],dis[1010];
int vis[1010];
int n;
void dijkstra(int x,int y)
{
	int i,j;
	memset(vis,0,sizeof(vis));
	for(i=1;i<=n;i++)
		dis[i]=map[x][i];
	dis[x]=1;
	vis[x]=1;
	for(i=1;i<=n;i++)
	{
		int mark=-1;
		double mi=0;
		for(j=1;j<=n;j++)
		{
			if(!vis[j]&&dis[j]>mi)
			{
				mi=dis[j];
				mark=j;
			}
			
		}
		if(mark==-1)
		break;
		vis[mark]=1;
		for(j=1;j<=n;j++)
		{
			if(!vis[j]&&dis[j]<dis[mark]*map[mark][j])
			dis[j]=dis[mark]*map[mark][j];
		}
	}
	if(dis[y]==0)
	printf("What a pity!\n");
	else
	printf("%.3lf\n",dis[y]);
}
int main()
{
	int m,i,j,x,y;
	double a;
	while(scanf("%d",&n)!=EOF)
	{
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=n;j++)
			{
				scanf("%lf",&a);
				map[i][j]=a;
			}
		}
		scanf("%d",&m);
		for(i=0;i<m;i++)
		{
			scanf("%d%d",&x,&y);
			dijkstra(x,y);
		}
	}
	return 0;
}


#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
double  map[1010][1010];
int n;
void floyd()
{
	int i,j,k;
	for(k=1;k<=n;k++)
	{
		for(i=1;i<=n;i++)
		{
			if(map[k][i]==0)
			continue;
			for(j=1;j<=n;j++)
			{
				map[i][j]=max(map[i][j],map[i][k]*map[k][j]);
			}
		}
	}
}
int main()
{
	int m,i,j,x,y;
	double ma,a;
	while(scanf("%d",&n)!=EOF)
	{
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=n;j++)
			{
				scanf("%lf",&a);
				map[i][j]=a;
			}
		}
		floyd();
		scanf("%d",&m);
		for(i=0;i<m;i++)
		{
			scanf("%d%d",&x,&y);
			if(map[x][y]==0)
			printf("What a pity!\n");
			else
			printf("%.3lf\n",map[x][y]);
		}
	}
	return 0;
}


感觉自己萌萌哒!

家用扫地机器人研发技术路线-第四部分:如何一步步做出来 | 4阶段 · 从原型到量产 摘要:本文详细介绍了扫地机器人从原型到量产的研发流程,分为4个关键阶段。首先聚焦四大技术难点:SLAM定位、AI视觉识别、仿生机械臂和静音风机系统。研发过程包括实验室原型验证、工程样机测试、小批量真实场景测试和量产导入四个阶段,每个阶段设有严格评审标准。特别强调测试贯穿全程,包括模块单元测试、整机集成测试、长期可靠性测试和多样化场景模拟,确保产品在上市前完成数百次真实环境验证。整个流程体现了从技术攻关到产品落地的系统性工程思维。 阅读详情

相关推荐

uCOS中的消息邮箱(:task与task之间传递一个数据(数据缓冲区))

程序需求,需要完成task与task之间  字符数组的数据传输 比如:在ucos中,串口2接收的字符数组是不定时的&不定长的;只有当接收到数据的时候_才将数据赋值给新数组 具体的程序示意如下: 图1:消息邮箱测试中的     向消息邮箱发送消息(OSMboxPost(Str_Box,(void*)rec);//发送消息--(向 消息邮箱_msg_key发送消息) ),实际项目需求的

faguoduifangui的博客 4540

HDU 1596 find the safest road

find the safest roadTime Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1533    Accepte

Dwylkz 794

尝试使用CubeMX做stm32开发之九:SYS配置

参考《STM32中文参考手册_V10》,研究CubeMX中有关SYS的配置

Forster-C的博客 9419

hdu1596find the safest road

题目大意: XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边 ,现在8600 想出去旅游,面对这这么多的路,他想找一条最安全的路。但是8600 的数学不好,想请你帮忙

追梦的Anker 1093

shopee app算法分析第一篇

shopee app算法分析第一篇分析完整算法大概要好几篇,耐心等待下.国内只会发律师函,牛逼,一个律师套话,一个律师发函,大意了(警惕卡通律师头像),希望law可以保护好你,还是干国外好.

2531

40-Type-C电路设计

Type-C电路设计

weixin_66510961的博客 9649

HDU1596---find the safest road

最短路的小变形,Floyd水过,时间给的太多了。。。怎么水都行。 #include #include #include #include #include #include using namespace std; #define MAX 100010 #define inf 0xffffff int n; double map[1010][1010]; void floyd() { f

AC_dream 731

MediaCreationToolW11:Windows11系统升级与修复利器

在日常使用Windows11系统的过程中,我们可能会遇到一些棘手的问题,比如系统更新时出现异常导致无法成功更新,或者系统本身出现异常需要进行无损修复。此外,当我们的电脑尚未升级到Windows11,而我们又希望进行升级时,一款高效且可靠的工具就显得尤为重要。接下来,MediaCreationToolW11将开始下载Windows11的安装文件,并创建Windows11介质。在“选择你要执行的操作”界面中,选择“ISO文件”。此时,你可以使用你的账户登录系统,并开始使用全新的Windows11系统了。

nntxthml的博客 2404

find the safest road<迪杰斯特拉算法>

find the safest road XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边 ,现在8600 想出去旅游,面对这这么多的路,他想找一条最安全的路

huantingyizhan的博客 440

secureCRT 破解方法

3、输入注册信息打开keygen.exe,点击path,选择SecureCRT的安装目录(例如D:\VanDykeSoftware\Clients)的securecrt.exe打开,继续下一步打开LicenseHelper.exe,如下。1、注册SecureCRT9.1打开keygen.exe,出现以下问题(没有关掉安全防护,一双击打开,Windows会自动识别keygen.exe为bingdu并删除)打开桌面SecureCRT,此界面不输入内容,直接点击下一步。2、存储配置文件夹(可以默认安装)

逆水行舟 1万+

车载 ECU 中的 Safety Linux 详解

车载 ECU 中的 Safety Linux 详解

天赐好车的博客 307

HDU1596 find the safest road(最短路变形,Dijkstra)

题目: find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 12964    Accepted Submission(s): 4625 Problem Descripti

riba2534的博客 753

基于FPGA的数字图像处理-直方图操作【3.3】

对于固定的位宽和图像分辨率来说,这个计算过程是 可定量的,也就是这个归一化系数是已知的。1.直方图累计和 根据数学定义,直方图累加和的定义是小于指定像素的所有像素 的统计值之和。在实际应用中,处理帧缓存是费时费力费资源的一件事情,在许 多情况下,图像的变换比较慢,在这种情况下的一个近似是当建立当 前帧的直方图统计结果时使用从前一帧得到的映射。由测试结果可见,这两幅过曝光和曝光不足的图像,经过均衡化 之后的效果图差别不大,对比度都非常高,设计代码达到了预期的均 衡目的。累加和的计算情况如图6-28所示。

qq_43416206的博客 1124

杭电1596 find the safest road

find the safest road Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 6380 Accepted Submission(s): 2271 Problem Description ...

diandingyin9417的博客 175

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

杭电-1596 find the safest road(Floyd&&dijkstra)

find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 11573    Accepted Submission(s): 4081 Problem Description XX星球有

lu_1110的博客 336

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

find the safest road

http://acm.hdu.edu.cn/showproblem.php?pid=1596 /* *@Author: STZG *@Language: C++ */ #include &lt;bits/stdc++.h&gt; #include&lt;iostream&gt; #include&lt;algorithm&gt; #include&lt;cstdlib&gt; #inclu...

无限迭代中...... 446

HDOJ--1596--find the safest road

find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9438    Accepted Submission(s): 3338 Problem Description XX星球有很多城

粥同学的学习笔记 929

HDU 1596 find the safest road (最短路)

HDU 1596 find the safest road (最短路) 标准的最短路模板题,建议大家来刷。

Ⅶ的专栏 1217

hdu1596 find the safest road(dijkstra求最短路)

find the safest road                                                                           Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem

酱油拌面 418

floyed变形求最长路 HDU 1596 find thesafest road

find thesafest roadTimeLimit: 10000/5000 MS (Java/Others)    Memory Limit:32768/32768 K (Java/Others)Total Submission(s): 16072    Accepted Submission(s): 5575ProblemDescriptionXX星球有很多城市,每个城市之间有一条或多条飞...

pxlsdz的博客 518

hdoj1536 find the safest road(dijstra)

find the safest road Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 9273    Accepted Submission(s): 3280 Problem Description XX星球

GoodLuckAC的博客 599

(阶段三 dijkstra1.4)HDU 1596 find the safest road(最短路的变形题:求乘积,求最大值)

#include #include using namespace std; const int maxn = 1100; const int inf = -100; double map[maxn][maxn]; double d[maxn]; int s[maxn]; int n, m; int start, end; double dijkstra(int v) { int i

黄俊东的专栏 1597

HDU-1596 find the safest road(最短路[Dijkstra])

看到有求任意两点间的距离,认为Dijkstra算法会超时,想到用floyd算法,但是还没有看具体实现,便接着去学习,苦于强迫症,先看了Bellman-ford算法,听到同学说能用Dijkstra算法,便立刻回来写了,1次AC的感觉真爽

idealism_xxm的专栏 895

find the safest road(弗洛伊德)

http://acm.hdu.edu.cn/showproblem.php?pid=1596 #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; using namespace std; int n; int ss,ee; d...

weixin_33739541的博客 193

hdoj1596find the safest road(floyd算法)

Problem Description XX星球有很多城市,每个城市之间有一条或多条飞行通道,但是并不是所有的路都是很安全的,每一条路有一个安全系数s,s是在 0 和 1 间的实数(包括0,1),一条从u 到 v 的通道P 的安全度为Safe(P) = s(e1)*s(e2)…*s(ek) e1,e2,ek是P 上的边 ,现在8600 想出去旅游,面对这这么多的路,他想找一条最安全的路。但是86

WOLF的博客 372

HDU 1596 find the safest road(Dijkstra,数据格式没定义好wrong了无数发)

题目地址:点击打开链接 思路:应该定义为double却定义为int,wrong了无数发,注意起点和终点一样的情况 AC代码1: #include #include #include #include #include #include #include #include #include #include #include using namespace std;

Java识堂,一个有干货的微信公众号 492

hdu 1596 find the safest road

题目链接:点击打开链接 用dij算法算最大概率。 只要把加法运算改成乘法就可以了。。 WA了几次,因为没注意每次vis数组都要清零,而把vis清零的语句 放在输入n之后执行。 #include #include #include #define INF 0x3f3f3f3f using namespace std; double edge[1010][1010]

虽然冲动永远比坚持容易~ 1262
上一篇: 参观城市(dfs,改编spfa)
下一篇: 杭电1242-Rescue(bfs+优先队列||队列)
Eric_keke
博客等级 码龄12年 37粉丝 221原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值