博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nefu-1297 表哥的旅行(最短路问题)
阅读量:5112 次
发布时间:2019-06-13

本文共 1332 字,大约阅读时间需要 4 分钟。

题目链接:

注意事项:

1.初始数组长度为零

2.同样路径可能花费不同的时间

3.运用变形的Dijkstra算法

代码思路:

先初始化二维数组ecot再输入数据并更新二维数组e和最大的cot,接着输入能到达的点fly并把e[fly][0]e[0][fly]初始化为0,最后输入想要到达的f,然后运用Dijkstra算法得出到达各点的最短路数组,最后找出最短路数组的最小值ans。

代码如下:

1 #include 
2 #include
3 #include
4 #include
5 #define inf 1<<30 6 using namespace std; 7 8 int e[1205][1205]; 9 int a,b,t,n,m,l,cot,ans,fly[1205],f[1205],book[1205],dis[1205];10 int dsj()11 {12 int u,pos;13 memset(book,0,sizeof(book));14 book[0]=1;15 for(int i=0;i<=cot;i++)16 dis[i]=e[i][0];17 for(int i=1;i<=cot;i++)18 {19 pos=inf;20 for(int j=1;j<=cot;j++)21 {22 if(dis[j]
dis[u]+e[u][v])31 dis[v]=dis[u]+e[u][v]; 32 }33 }34 return 0;35 }36 int main()37 {38 while(~scanf("%d%d%d",&n,&m,&l))39 {40 cot=0;41 for(int i=0;i<1111;i++)42 {43 for(int j=0;j<1111;j++)44 e[i][j]=inf;45 e[i][i]=0;46 }47 for(int i=0;i
b?a:b;54 }55 for(int i=0;i
dis[f[i]])66 ans=dis[f[i]];67 if(ans==inf)68 printf("NO\n");69 else70 printf("%d\n",ans);71 }72 return 0;73 }
View Code

 

转载于:https://www.cnblogs.com/wang-ya-wei/p/5857759.html

你可能感兴趣的文章
一句话说清分布式锁,进程锁,线程锁
查看>>
python常用函数
查看>>
FastDFS使用
查看>>
服务器解析请求的基本原理
查看>>
[HDU3683 Gomoku]
查看>>
【工具相关】iOS-Reveal的使用
查看>>
数据库3
查看>>
存储分类
查看>>
下一代操作系统与软件
查看>>
【iOS越狱开发】如何将应用打包成.ipa文件
查看>>
[NOIP2013提高组] CODEVS 3287 火车运输(MST+LCA)
查看>>
Yii2 Lesson - 03 Forms in Yii
查看>>
Python IO模型
查看>>
Ugly Windows
查看>>
DataGridView的行的字体颜色变化
查看>>
Java再学习——关于ConcurrentHashMap
查看>>
如何处理Win10电脑黑屏后出现代码0xc0000225的错误?
查看>>
局域网内手机访问电脑网站注意几点
查看>>
[Serializable]的应用--注册码的生成,加密和验证
查看>>
Day19内容回顾
查看>>