赛后填坑系列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短路的更多相关文章

  1. poj2449(k短路&A_star模板)

    题目链接:http://poj.org/problem?id=2449 题意:给出一个有向图,求s到t的第k短路: 思路:k短路模板题,可以用A_star模板过: 单源点最短路径+高级搜索A*;A*算 ...

  2. POJ2449:K短路

    Remmarguts' Date Time Limit: 4000MS   Memory Limit: 65536K Total Submissions: 26355   Accepted: 7170 ...

  3. POJ2449 K短路模板

    #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> ...

  4. k短路模板 POJ2449

    采用A*算法的k短路模板 #include <iostream> #include <cstdio> #include <cstring> #include < ...

  5. 【10.9校内练习赛】【搜索】【2-sat】【树链剖分】【A_star k短路】【差分约束+判负环】

    在洛谷上复制的题目! P3154 [CQOI2009]循环赛 题目描述 n队伍比赛,每两支队伍比赛一次,平1胜3负0. 给出队伍的最终得分,求多少种可能的分数表. 输入输出格式 输入格式: 第一行包含 ...

  6. [poj2449]Remmarguts' Date(K短路模板题,A*算法)

    解题关键:k短路模板题,A*算法解决. #include<cstdio> #include<cstring> #include<algorithm> #includ ...

  7. POJ2449 Remmarguts' Date 第K短路

    POJ2449 比较裸的K短路问题 K短路听起来高大上 实际思路并不复杂 首先对终点t到其他所有点求最短路 即为dist[] 然后由起点s 根据当前走过的距离+dist[]进行A*搜索 第k次到达t即 ...

  8. POJ2449 【第k短路/A*】

    题目链接:http://poj.org/problem?id=2449 题目大意: 给出n个点,m条有向边,最后一行给出起点到终点的第k短路.求长度. 题解思路: 这是我第一道第k短路题以及A*算法的 ...

  9. A*模板(求K短路)(POJ2449)

    A*是bfs的优化,IDA*是dfs的优化 A*算法: 为启发式算法中很重要的一种,被广泛应用在最优路径求解和一些策略设计的问题中.而A*算法最为核心的部分,就在于它的一个估值函数的设计上: f(n) ...

随机推荐

  1. modifytime是一个神奇的column name----这边文章是错的totally,因为我的实验不彻底。timestamp属性很神奇,头一个timestamp,会自动的成DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

    在mysql里边modifytime是一个神奇的column name,试一下. 请执行sql语句 CREATE TABLE `test_time` ( `modifytime` timestamp ...

  2. Android开发系列----sdk下载 环境准备

    今天开始准备Android开发环境,FQ下载Android Studio,官网下载地址 https://developer.android.com/studio/install.html (突然发现我 ...

  3. xml程序 个人练习1

    package cn.gdpe.xml2; import java.io.File;import java.io.FileOutputStream;import java.util.List; imp ...

  4. <select>与<datalist>的区别

    size:下拉框中每次出现选项的个数 multiple:可以一次性选多个选项: disabled:时下拉框不可用,无法点击选项​ list:它的值应于id的值对应 datalist要与input标签一 ...

  5. 固定DIV样式

      <!doctype html>   <html>   <head>   <meta charset="UTF-8">   < ...

  6. Form表单三种提交按钮的区别?

    1.<input type='button' id='btn' onclick='check()' value="提交"> 说明:只是普通的按钮(不附带提交功能),不会 ...

  7. php基础知识【函数】(7)url和ob函数

    一.URl函数 1.urlencode -- 编码 URL 字符串 2.urldecode -- 解码已编码的 URL 字符串 3.rawurlencode -- 按照 RFC 1738 对 URL ...

  8. Content-Type实体首部字段

      现代互联网下,每天都会有数以亿计的各种媒体对象经由HTTP传输,如图像,文本,影视以及软件程序等.这些数据都包含在HTTP报文的实体内容中,如果把HTTP报文想像成一份快递,HTTP实体就是快递实 ...

  9. tomcat架构分析-索引

    出处:http://gearever.iteye.com tomcat架构分析 (概览) tomcat架构分析 (容器类) tomcat架构分析 (valve机制) tomcat架构分析 (valve ...

  10. [151225] Python3 实现最大堆、堆排序,解决TopK问题

    参考资料: 1.算法导论,第6章,堆排序 堆排序学习笔记及堆排序算法的python实现 - 51CTO博客 堆排序 Heap Sort - cnblogs 小根堆实现优先队列:Python实现 -cn ...