POJ1724-ROADS
来源:互联网 发布:河南网络电视台大农联 编辑:程序博客网 时间:2024/06/07 00:02
给定k元钱,要求满足在k元钱内的最短路。
虽然是最短路问题,但是由于它的限制条件,在设计算法时也无需更新最短路,因此采用Bfs与优先队列结合的算法,通过优先队列不断取出符合条件的“最短路”。
#include <cstdio>#include <vector>#include <queue>#include <algorithm>using namespace std;const int maxn = 100 + 5;struct City { int num, toll, dist; bool operator > (const City& a) const { return dist > a.dist; }};struct Edge { int to, dist, toll;};int k, n, r;vector<Edge> G[maxn];int Bfs() { priority_queue<City, vector<City>, greater<City> > q; q.push((City){0, 0, 0}); while (!q.empty()) { City c = q.top(); q.pop(); int u = c.num; if (u == n - 1) { return c.dist; } for (int i = 0; i < G[u].size(); i++) { Edge e = G[u][i]; if (c.toll + e.toll <= k) { q.push((City){e.to, c.toll + e.toll, c.dist + e.dist}); } } } return -1;}int main(int argc, char const *argv[]) { scanf("%d%d%d", &k, &n, &r); for (int i = 0; i < r; i++) { int s, d, l, t; scanf("%d%d%d%d", &s, &d, &l, &t); G[s-1].push_back((Edge){d-1, l, t}); } printf("%d\n", Bfs()); return 0;}
0 0
- poj1724 ROADS
- poj1724 - ROADS
- ROADS poj1724
- POJ1724--ROADS
- POJ1724 ROADS
- POJ1724-ROADS
- poj1724 ROADS
- poj1724 ROADS
- POJ1724 ROADS
- poj1724——ROADS
- poj1724 ROADS (spfa + A*)
- poj1724 ROADS 解题报告
- poj1724 roads(dfs)
- poj1724——ROADS
- POJ1724 ROADS最短路问题
- poj1724 openjudge1724 ROADS 解题记录
- 【POJ1724】ROADS 某邪恶最短路
- poj1724--ROADS(最短路变形)
- java
- C++运算符重载
- sax解析
- 1102 Java-API常用类
- R语言随机森林初探
- POJ1724-ROADS
- 结构体的三种定义方式
- 老耗子生小耗子问题
- xUtils框架的学习(一)
- 编写高质量JAVA代码系列(建议1-10)读后简练总结
- 第九周项目4--广义表算法库及应用--(1)建立广义表算法库
- SAD 2016 10 22
- 时光慢慢走
- Centos 7.0下system-config-kickstart由于下载软件包失败, 软件包选择被禁止