|BZOJ 2763|最短路|[JLOI2011]飞行路线
来源:互联网 发布:java上传图片到ftp 编辑:程序博客网 时间:2024/05/21 18:43
BZOJ 2763
分层图最短路
注意:priority_queue默认排序序列是从大到小的,所以重载小于符号时要a>b
以后权值一律写w,不要用v或c!
#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#include<queue>#define fo(i, j, k) for (i=(j);i<=(k);i++)#define fd(i, k, j) for (i=(k);i>=(j);i--)#define fg(i, u) for (i=0;i<G[u].size();i++)#define fe(i, u) for (i=head[u];i!=-1;i=e[i].next)#define rd(a) scanf("%d", &a)#define rd2(a, b) scanf("%d%d", &a, &b)#define rd3(a, b, c) scanf("%d%d%d", &a, &b, &c)#define ms(i, j) memset(i, j, sizeof i)#define FN2 "bzoj2763" using namespace std;const int MAXN = 1200100, INF = 0x3f3f3f3f;struct edge{int v, c;}e[MAXN<<2];struct data { int u, c; bool operator < (data const &b) const { return c>b.c; }};int n, m, k, en, dis[MAXN], s, t, vi[MAXN];vector<int> G[MAXN];void ins(int u, int v, int c) { en++, e[en].v = v, e[en].c = c, G[u].push_back(en);}void pre() { int i; en = 0; fo (i, 0, n*(k+2)) G[i].clear(), dis[i] = INF, vi[i] = false;}void init() { int i,j; pre(); rd2(s, t); fo (i, 1, m) { int a, b, c; rd3(a, b, c); fo (j, 0, k) { ins(a+j*n, b+j*n, c), ins(b+j*n, a+j*n, c); if (j!=k) ins(a+j*n, b+(j+1)*n, 0), ins(b+j*n, a+(j+1)*n, 0); } }}void solve() { int i, ans = INF; priority_queue<data> q; dis[s] = 0, q.push((data){s, dis[s]}); while (!q.empty()) { data p = q.top(); q.pop(); int u = p.u; if (vi[u]) continue; vi[u] = true; for (i=0;i<G[u].size();i++) { int v = e[G[u][i]].v; if (dis[v]>dis[u]+e[G[u][i]].c) { dis[v] = dis[u]+e[G[u][i]].c;//用dis[u],因为有重边 q.push((data){v, dis[v]}); } } } fo (i, 0, k) { ans = min(ans, dis[t+i*n]); } printf("%d\n", ans);}int main() { #ifndef ONLINE_JUDGE freopen(FN2".in","r",stdin);freopen("1.out","w",stdout); #endif while (rd3(n,m,k)==3) init(), solve(); return 0;}
阅读全文
0 0
- BZOJ 2763: [JLOI2011]飞行路线 最短路
- |BZOJ 2763|最短路|[JLOI2011]飞行路线
- BZOJ 2763: [JLOI2011]飞行路线(分层图最短路)
- bzoj 2763: [JLOI2011]飞行路线 分层图最短路
- BZOJ 2763: [JLOI2011]飞行路线 分层图最短路
- BZOJ 2763: [JLOI2011]飞行路线
- bzoj 2763 [JLOI2011]飞行路线
- BZOJ 2763 [JLOI2011]飞行路线
- BZOJ 2763 [JLOI2011]飞行路线
- bzoj 2763: [JLOI2011]飞行路线
- bzoj 2763: [JLOI2011]飞行路线
- BZOJ 2763 [JLOI2011]飞行路线
- poj 2763: [JLOI2011]飞行路线(spfa分层图最短路)
- [bzoj2763]2763: [JLOI2011]飞行路线 分层图最短路
- [JLOI2011]飞行路线 分层图最短路
- 【bzoj2763】 JLOI2011飞行路线 分层最短路
- bzoj[JLOI2011]飞行路线
- 【BZOJ】【JLOI2011】飞行路线
- kotlin学习Day1:JavaActivity和KotlinActivity对比分析
- 素数判断 Java
- leetcode 561 Array Partition I
- 职业规划
- [调研] 防火墙多出口 对于 内部服务器网络的影响
- |BZOJ 2763|最短路|[JLOI2011]飞行路线
- 十六进制转二进制 Java
- nginx实现tomcat动静分离详解
- 算法竞赛入门经典(第2版)习题4-4 骰子涂色 Uva253
- 快速读取数字程序 Java
- python 日志模块详解
- Linux命令 ln
- java容器(六)-Map接口
- 求最大公约数 Java