A_star poj2449 k短路
赛后填坑系列QAQ
贴代码呀
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string> using namespace std; void setIO(const string& a) {
freopen((a+".in").c_str(), "r", stdin);
freopen((a+".out").c_str(), "w", stdout);
} const int N = + , INF = ~0u>>; int n;
#include<vector>
struct Edge{
int to, w;
Edge(int to = , int w = ) : to(to), w(w) {}
};
vector<Edge> G[N], G2[N]; void AddEdge(int u, int v, int w) {
G[u].push_back(Edge(v, w));
G2[v].push_back(Edge(u, w));
} int dis[N]; #include<queue>
namespace SPFA {
int* d;
bool inq[N];
queue<int> q; void insert(int x, int dis) {
if(d[x] <= dis) return;
d[x] = dis;
if(!inq[x]) q.push(x), inq[x] = ;
} void main(int st, int dis[], const vector<Edge> G[]) {
d = dis;
for(int i = ; i <= n; i++) {
d[i] = INF;
inq[i] = ;
}
insert(st, );
while(!q.empty()) {
int u = q.front(); q.pop(); inq[u] = ;
for(unsigned i = ; i < G[u].size(); i++) {
insert(G[u][i].to, d[u] + G[u][i].w);
}
}
}
} struct Node {
int g, h, v;
Node(int g = , int h = , int v = ) : g(g), h(h), v(v) {}
bool operator < (const Node& rhs) const {
return h > rhs.h;
}
}; namespace A_star {
priority_queue<Node> q;
int inq[N]; int main(int st, int ed, int k) {
if(dis[st] == INF) return -;
if(st == ed) k++; q.push(Node(, + dis[st], st));
while(!q.empty()) {
Node cur = q.top(); q.pop();
int u = cur.v; inq[u]++;
if(inq[ed] == k) return cur.g;
if(inq[u] > k) continue; // mark1 for(unsigned i = ; i < G[u].size(); i++) {
const Edge& e = G[u][i];
q.push(Node(cur.g + e.w, cur.g + e.w + dis[e.to], e.to));
}
}
return -;
}
} int main() {
#ifdef DEBUG
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif int m, k, st, ed;
scanf("%d%d", &n, &m);
for(int i = ; i <= m; i++) {
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
AddEdge(u, v, w);
} scanf("%d%d%d", &st, &ed, &k); SPFA::main(ed, dis, G2);
printf("%d\n", A_star::main(st, ed, k)); return ;
}
A_star poj2449 k短路的更多相关文章
- poj2449(k短路&A_star模板)
题目链接:http://poj.org/problem?id=2449 题意:给出一个有向图,求s到t的第k短路: 思路:k短路模板题,可以用A_star模板过: 单源点最短路径+高级搜索A*;A*算 ...
- POJ2449:K短路
Remmarguts' Date Time Limit: 4000MS Memory Limit: 65536K Total Submissions: 26355 Accepted: 7170 ...
- POJ2449 K短路模板
#include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> ...
- k短路模板 POJ2449
采用A*算法的k短路模板 #include <iostream> #include <cstdio> #include <cstring> #include < ...
- 【10.9校内练习赛】【搜索】【2-sat】【树链剖分】【A_star k短路】【差分约束+判负环】
在洛谷上复制的题目! P3154 [CQOI2009]循环赛 题目描述 n队伍比赛,每两支队伍比赛一次,平1胜3负0. 给出队伍的最终得分,求多少种可能的分数表. 输入输出格式 输入格式: 第一行包含 ...
- [poj2449]Remmarguts' Date(K短路模板题,A*算法)
解题关键:k短路模板题,A*算法解决. #include<cstdio> #include<cstring> #include<algorithm> #includ ...
- POJ2449 Remmarguts' Date 第K短路
POJ2449 比较裸的K短路问题 K短路听起来高大上 实际思路并不复杂 首先对终点t到其他所有点求最短路 即为dist[] 然后由起点s 根据当前走过的距离+dist[]进行A*搜索 第k次到达t即 ...
- POJ2449 【第k短路/A*】
题目链接:http://poj.org/problem?id=2449 题目大意: 给出n个点,m条有向边,最后一行给出起点到终点的第k短路.求长度. 题解思路: 这是我第一道第k短路题以及A*算法的 ...
- A*模板(求K短路)(POJ2449)
A*是bfs的优化,IDA*是dfs的优化 A*算法: 为启发式算法中很重要的一种,被广泛应用在最优路径求解和一些策略设计的问题中.而A*算法最为核心的部分,就在于它的一个估值函数的设计上: f(n) ...
随机推荐
- 【模板】【凸包】Graham_scan
/* 唐代李白 <江夏别宋之悌> 楚水清若空,遥将碧海通.人分千里外,兴在一杯中. 谷鸟吟晴日,江猿啸晚风.平生不下泪,于此泣无穷. */ #include <iostream> ...
- login-登录
<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Inse ...
- 在静态页面html中跳转传值
在html中通过"?"传值--------<a href="index2.html?name=caoy">静态传值</a> 在跳转到的页 ...
- jQuery之文本框得失焦点
版本一 css代码部分: .focus { border: 1px solid #f00; background: #fcc; } 当焦点获得时,添加focus样式,添加边框,并改背景色为#fcc h ...
- 页面点击关闭弹出提示js代码
代码效果为: <script> window.onbeforeunload = function() { return "您好!\n我是abc\n —————————————— ...
- JQuery zoom插件学习
jquery zoom是一款图片放大插件,经常用在商城商品页面里. 使用JQuery zoom插件,除了需要引入JQuery.js外,还要引入JQuery.zoom.js文件及jqzoom.css文件 ...
- adb设备,根据serial获取vid pid
使用adb devices命令,可以轻松获取到所有连接到PC的adb设备的serial值. 但是adb命令无法获取adb usb设备的vendor id和product id. 本程序根据adb协议, ...
- 转:fork的解释
原文来自于:http://baike.baidu.com/view/1952900.htm?fr=aladdin fork编辑 叉子\分岔\岔口\复刻,西方人吃饭用的东西,经常用作刀和叉. 计算机程序 ...
- 【转载】之 破解 (【原创】Xenocode Postbuild 2009 加壳破解 (不断更新中...))
声明 本文转载,感谢原作者dotNetSafe分享 [原创]Xenocode Postbuild 2009 加壳破解 (不断更新中...) http://bbs.pediy.com/showthrea ...
- study note -(some good sentence)
There are, however, some disadvantages.However, there may be better ways of tacking this problem. Ho ...