博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 2680 Choose the best route
阅读量:4587 次
发布时间:2019-06-09

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

题目:

http://acm.hdu.edu.cn/showproblem.php?pid=2680

一直在纠结时间相等时入队列的先后问题,突然发现自己二呀,路径相等的都会依次入队啊~~~

好了,说正事,最短路问题,用Dijkstra,注意几个地方:

1.这个问题可以倒过来想,从终点到这几个点中的最短距离。

2.路是有向的,如果倒过来想问题,那么路的方向也要倒过来。

eg: 输入1 2 5即从1到2的时间是5,那么如果倒过来考虑(以她朋友的家为起点),就要记录w[2][1]=5;

源代码:

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 const int INF=100000000; 7 int visit[1005],w[1005][1005],d[1005]; 8 int main() 9 {10 int n,m,s,ok,re,i,j,p,q,t,e;11 while(scanf("%d %d %d",&n,&m,&s)!=EOF){12 memset(visit,0,sizeof(visit));13 for(i=1;i<=n;i++)14 for(j=1;j<=n;j++){15 w[i][j]=INF;16 d[i]=(i==s?0:INF);17 }18 for(i=1;i<=m;i++){19 scanf("%d %d %d",&p,&q,&t);20 if(w[q][p]>t) w[q][p]=t;21 }22 queue
que;23 que.push(s);24 visit[s]=1;25 while(!que.empty()){26 int min=INF;27 ok=0;28 int temp=que.front();29 que.pop();30 for(i=1;i<=n;i++){31 if(visit[i]==0&&i!=temp){32 if(d[i]>d[temp]+w[temp][i]){33 d[i]=d[temp]+w[temp][i];34 }35 if(d[i]

 

转载于:https://www.cnblogs.com/xiaoze-yj/p/3243309.html

你可能感兴趣的文章
《超越CSS:web设计精髓》的读后感
查看>>
团队项目第一阶段冲刺站立会议09
查看>>
团队项目第二阶段冲刺站立会议03
查看>>
Python 错误和异常小结
查看>>
sass基础
查看>>
转载:关于加班和效率
查看>>
1186: 零起点学算法93——改革春风吹满地
查看>>
关于Unity中特殊目录
查看>>
360wifi提取版
查看>>
关于Unity遇到的问题
查看>>
jQuery---ajax
查看>>
用TypeScipt和AMD模块化理念实现React官方教程(五)提交和更新数据
查看>>
5.错误处理和脚本调试
查看>>
hdu 1270
查看>>
存储过程笔记
查看>>
C# 使用 ffmpeg 进行音频转码
查看>>
centos6.5下安装Nginx
查看>>
【NOI2007】社交网络
查看>>
1032 挖掘机技术哪家强
查看>>
PHP $_SERVER参数
查看>>