POJ 1724ROADS(费用最短路:优先队列+BFS)
来源:互联网 发布:开票软件上有小盾牌 编辑:程序博客网 时间:2024/05/07 00:27
这个做法是错误的!!!!数据太水,就水过去了。
要看正解请看另一个题目的解法
题目意思很简单,就是求费用最短路,数据比较小,考虑暴力bfs。
状态定义为(花费,最短路,终点)的一个三元组。
优先队列按照最短路长度排序,每次从队列里取出最短路长度最短的状态,然后把跟该状态终点相邻的点加入队列。因为数据比较小,所以不用记录访问情况也能ac。
#pragma warning(disable:4996)#include <cstdio>#include <queue>#include <vector>#include <cstring>#include <algorithm>using namespace std;const int N = 105;vector<int>g[N], e[N], cost[N];struct node {int cost, len, v;node(){}node(int cost,int len,int v):cost(cost),len(len),v(v){}bool operator<(const node&op)const {return len > op.len;}};int n, k;void add(int u, int v, int c, int cc) {g[u].push_back(v);e[u].push_back(c);cost[u].push_back(cc);}int bfs() {priority_queue<node>q;q.push(node(0, 0, 1));while (!q.empty()) {node now = q.top(); q.pop();int u = now.v;if (u == n)return now.len;//如果是所求终点的话直接返回就是符合费用条件的最短路了for (int i = 0; i < (int)g[u].size(); i++) {int to = g[u][i];if (now.cost + cost[u][i] <= k) {//如果符合费用条件就加入队列q.push(node(now.cost + cost[u][i], now.len + e[u][i], to));}}}return -1;}int main() {int R;scanf("%d %d %d", &k, &n, &R);while (R--) {int a, b, c, d;scanf("%d %d %d %d", &a, &b, &c, &d);add(a, b, c, d);//add(b, a, c, d);}printf("%d\n", bfs());return 0;}
0 0
- POJ 1724ROADS(费用最短路:优先队列+BFS)
- POJ 1724 ROADS 最短路 邻接表 + bfs +优先队列
- Poj 1724 ROADS (搜索 最短路 BFS优先队列)
- 【poj 1724】 ROADS 最短路(dijkstra+优先队列)
- POJ 1724 ROADS(BFS + 优先队列)
- POJ 1724 ROADS(bfs最短路)
- POJ 1724 ROADS (优先队列+BFS)
- POJ-1724-ROADS(优先队列,邻接表,BFS)
- POJ 1724 ROADS(领接链表的BFS+优先队列)
- HDU 5433(Xiao Ming climbing)(费用最短路:BFS+优先队列)
- 【poj】【费用限制最短路】ROADs
- POJ ROADS DFS BFS 优先队列 入门
- poj 1724 最短路+优先队列(两个约束条件)
- POJ 1724 ROADS 有约束的最短路问题, BFS
- poj 1724~ROADS(dijkstra+优先队列)
- ural 1325 Dirt(bfs最短路+优先队列)
- POJ 1724 ROADS 最短路
- POJ 1724 优先队列解带限制最短路
- Uva 177 Paper Folding(模拟?Orz)
- Linux查看内核(Kernel)版本的方法
- Mac虚拟机安装win7教程之前奏曲
- 改变导航栏的背景,导航栏上的文字的颜色,按钮的颜色
- OOA和OOD
- POJ 1724ROADS(费用最短路:优先队列+BFS)
- 编译速度_SSD固态硬盘和机械硬盘编译速度测试
- Remove Duplicates from Sorted List I,II
- JAVA延时
- C++ 内存分配(new,operator new)详解
- rpm安装以及rpm升级命令
- 【剑指offer】面试题5:从尾到头打印链表
- Server 2012 搭建 VPN
- 碎碎念-360小时