当前位置: 首页 > news >正文

2016-PTA初赛-L3-1 天梯地图(dijkstra模板)

image

思路

dijkstra模板题,不需要小根堆优化,这题的第二个样例:路径一样则合并输出,怎么判断路径一样?会想到C++的vector对==进行了重写(即每个对应位置的元素一样)。

AcCode:

#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
int N, M;
//最后一维表示time或distance,graph存图,dist存最短距,lst存上个节点
int graph[510][510][2], dist[510][2], lst[510][2];
//两种路径
vector<int> path[2];
//dijkstra模板
int dj(int st, int be, int end){dist[be][st] = 0;bool vis[510];lst[be][st] = -1;memset(vis, false, sizeof(vis));for(int i = 0; i < N; i++){int cur, mn = 0x7fffffff;for(int i = 0; i < N; i++) if(dist[i][st] < mn && !vis[i]) mn = dist[i][st], cur = i; for(int i = 0; i < N; i++){if(graph[cur][i][st] && dist[cur][st] + graph[cur][i][st] < dist[i][st] && !vis[i]){dist[i][st] = dist[cur][st] + graph[cur][i][st];lst[i][st] = cur;}}vis[cur] = true;}// for(int i = 0; i < N; i++) cout << lst[i][st] << "-";// cout << endl;return dist[end][st];
}
//递归的获取路径
void getPath(int st, int end){if(end == -1) return;getPath(st, lst[end][st]);path[st].push_back(end);
}int main(){
//初始化dist数组为大值,并不知道time和lenth取值范围,题目压根没写,我猜的。memset(dist, 0x2f, sizeof(dist));cin >> N >> M;
//输入数据while(M--){int v1, v2, ow, len, time; cin >> v1 >> v2 >> ow >> len >> time;graph[v1][v2][0] = time;graph[v1][v2][1] = len;if(ow != 1) graph[v2][v1][0] = time, graph[v2][v1][1] = len;}
//调用函数输出答案即可int be, end; cin >> be >> end;int ans[2];for(int i = 0; i < 2; i++){ans[i] = dj(i, be, end);getPath(i, end);}if(path[1] != path[0]){cout << "Time = " << ans[0] << ": ";for(int i = 0; i < path[0].size(); i++){cout << path[0][i];if(i != path[0].size() - 1) cout << " => ";}cout << endl << "Distance = " << ans[1] << ": ";for(int i = 0; i < path[1].size(); i++){cout << path[1][i];if(i != path[1].size() - 1) cout << " => ";}}else{cout << "Time = " << ans[0] << "; " << "Distance = " << ans[1] << ": ";for(int i = 0; i < path[0].size(); i++){cout << path[0][i];if(i != path[0].size() - 1) cout << " => ";}}return 0;
}
http://www.rkmt.cn/news/60918.html

相关文章:

  • KEYDIY Toyota 8A (BA) 4A All-Lost Adapter Cable: Simplify Key Replacement for Mechanics Car Owners
  • KEYDIY KD NB104 4-Button Universal Remote Key (5pcs) – Reliable Replacement for Euro/American Cars
  • 夺命雷公狗—好用的截图工具分享
  • 实验 3
  • 实验03
  • 2025年11月睫毛假发拉丝机,拉丝机,扫把丝拉丝机厂家权威推荐,细丝拉丝技术实力与口碑解析!
  • 2025年11月PE管材设备,PPR管材设备,PVC管材设备厂商推荐:聚焦管材机械企业综合实力与核心技术
  • 2025年11月PMMA板片生产线,EVA板片生产线,PET板片生产线厂家权威推荐,透明板材设备品质红榜发布!
  • 2025年11月管道除锈设备,管道涂塑设备,管道设备厂家品牌榜,严苛工况适配性深度解析!
  • 2025年11月钢管粉末喷涂设备,钢管设备,钢管3PE设备公司推荐,专业防腐机械制造与品质保障之选
  • 2025年11月地脚螺栓预埋件,热镀锌地脚螺栓,光伏地脚螺栓厂家推荐,抗腐蚀与适配场景实用指南!
  • 2025年11月高铁T型螺栓,管片T型螺栓,幕墙T型螺栓厂家最新推荐,抗腐蚀性能深度测评!
  • 2025年11月中走丝线切割,中走丝线切割机,自动穿丝中走丝线切割厂家:权威测评与选型参考
  • 2025年11月双头火花机,三轴联动火花机,微细孔火花机厂家推荐,双工位加工设备性价比测评!
  • 2025年11月管片T型螺栓,幕墙T型螺栓,管廊T型螺栓厂家推荐,高强度紧固方案选购指南!
  • 珍藏于心底的时光,是记忆深处最美的花。
  • 2025年11月高温煅烧窑,固废煅烧窑,连续式煅烧窑厂家推荐,工业煅烧设备性能对比与选购指南!
  • 2025.11.25总结
  • Coze相关问题
  • 妥协技术方案和风险累加
  • 目标跟踪(BOT-SORT)yolo默认的跟踪算法 - MKT
  • 实验三类和对象
  • 翻转课堂 1st
  • java---gradle的使用总结
  • 二叉树 节点的个数关系
  • java---Idea
  • java---基础
  • 实用指南:__工艺数据管理的范式转变:金仓数据库替代MongoDB实操实践__
  • Redis:高性能NoSQL数据库实战指南 - 教程
  • 2025年口碑好的轮胎品牌哪家好:十大消费者信赖品牌揭秘