51Nod 1459:迷宫游戏
来源:互联网 发布:报表软件排名 编辑:程序博客网 时间:2024/05/22 00:17
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1459
最短路算法的小小拓展,给出起点终点,最起点到终点的最短路径中分数最大的那一条。
输出最短路和对应的最大分数。
基础入门题。
AC代码:
#include <iostream>#include <stdio.h>#include <vector>#define inf 0x3f3f3f3fusing namespace std;const int maxn = 502;int Map[maxn][maxn];int score[maxn];int n,m,Start,End;void initMap(){ for(int i = 0; i < n; i++) { Map[i][i] = 0; for(int j =i+1; j < n; j++) Map[i][j] = Map[j][i] = inf; }}int dist[maxn],maxscore[maxn];void dijkstra(){ int vis[maxn]; int mindis,u; for(int i = 0; i < n; i++) { dist[i] = Map[Start][i]; vis[i] = 0; ///原来这里忘判断了,直接就是maxscore[i] = score[Start]+score[i],死活过不去第二组数据。太粗心了。 if(i != Start) maxscore[i] = score[Start]+score[i]; else maxscore[i] = score[Start]; } vis[Start] = 1; for(int i = 0; i < n; i++) { mindis = inf; for(int j = 0; j < n; j++) { if(vis[j]==0) { if(dist[j]<mindis) { u = j; mindis = dist[j]; } } } vis[u] = 1; for(int j = 0; j < n; j++) { if(vis[j]==0 && Map[u][j]!=inf) { if(dist[u]+Map[u][j]<dist[j]) ///首先保证路径最短 { dist[j] = dist[u] + Map[u][j]; maxscore[j] = maxscore[u]+score[j]; } if(dist[u]+Map[u][j]==dist[j]) ///最短路长度一样,取分数大的。 { if(maxscore[u]+score[j]>maxscore[j]) maxscore[j] = maxscore[u]+score[j]; } } } }}int main(){ while(~scanf("%d%d%d%d",&n,&m,&Start,&End)) ///n个房间,m条道路,Start起点,End终点 { for(int i = 0; i < n; i++) scanf("%d",&score[i]); ///输入n个房间对应的分数 initMap(); while(m--) { int x,y,z; scanf("%d%d%d",&x,&y,&z); Map[x][y] = Map[y][x] = z; ///耗费的时间。 } dijkstra(); printf("%d %d\n",dist[End],maxscore[End]); } return 0;}
阅读全文
0 0
- 51NOD 1459 迷宫游戏
- 51Nod 1459 迷宫游戏
- 51nod 1459 迷宫游戏
- 51nod 1459 迷宫游戏
- 51nod 1459 迷宫游戏
- 51Nod 1459 迷宫游戏
- 51nod 1459 迷宫游戏
- 51nod 1459 迷宫游戏
- 51nod 1459 迷宫游戏
- 51Nod 1459 迷宫游戏
- 51nod 1459 迷宫游戏
- 51nod 1459 迷宫游戏
- 1459 迷宫游戏(51NOD)
- 51Nod 1459:迷宫游戏
- 51NOD-1459 迷宫游戏
- 51NOD 1459迷宫游戏
- 51nod 1459 迷宫游戏
- 51 nod: 1459 迷宫游戏
- HDU 6127 Hard challenge(思维+计算几何)——2017 Multi-University Training Contest
- 扩展阅读 健康身体与强健体魄
- maven项目导入eclipse 后需要做哪些工作?
- 线段树&树状数组&扫描线
- 新手学JsonObject
- 51Nod 1459:迷宫游戏
- nginx---root 与 alias区别
- 使用maven创建web3.0项目
- MyISAM和InnoDB的区别
- 用git向github提交代码
- 在windows 虚拟机中安装ubuntu 16.04 LTS 系统的经验
- 【Maven】使用Maven构建多模块项目
- SqlServer存储过程中使用事务
- 使用face++做人脸,年龄,性别识别