【洛谷 1186】 玛丽卡
来源:互联网 发布:杭州边锋网络官网 编辑:程序博客网 时间:2024/06/11 19:50
又是开错了数组……要记住。
#include <bits/stdc++.h>using namespace std;#define fi first#define se second#define pii pair<int,int>#define mp(a,b) make_pair(a,b)const int maxn = 1010;const int maxm = 1100010+100000;const int inf = 0x7fffffff/3;int _first[maxn], _next[maxm], _to[maxm], _dis[maxm], cnt, dis[maxn];int n, m;priority_queue <pii, vector<pii>, greater<pii> > q1;bool vis[maxn], used[maxm];pii pre[maxn];void add(int a, int b, int c){ _next[++cnt] = _first[a]; _first[a] = cnt; _dis[cnt] = c; _to[cnt] = b;}void dij1(){ while(!q1.empty()) q1.pop(); for(int i = 1; i <= n; i ++) dis[i] = inf, vis[i] = 0; dis[n] = 0; q1.push(mp(dis[n], n)); while(!q1.empty()){ pii t = q1.top(); q1.pop(); if(vis[t.se]) continue; vis[t.se] = true; if(vis[1]) return; for(int i = _first[t.se]; i; i = _next[i]){ if(!vis[_to[i]] && dis[_to[i]] > dis[t.se] + _dis[i]){ dis[_to[i]] = dis[t.se] + _dis[i]; pre[_to[i]] = mp(t.se, i); q1.push(mp(dis[_to[i]], _to[i])); } } }}int dij2(){ while(!q1.empty()) q1.pop(); for(int i = 1; i <= n; i ++) dis[i] = inf, vis[i] = 0; dis[n] = 0; q1.push(mp(dis[n], n)); while(!q1.empty()){ pii t = q1.top(); q1.pop(); if(vis[t.se]) continue; vis[t.se] = true; if(vis[1] == 1) return dis[1]; for(int i = _first[t.se]; i; i = _next[i]){ if(!used[i] && !vis[_to[i]] && dis[_to[i]] > dis[t.se] + _dis[i]){ dis[_to[i]] = dis[t.se] + _dis[i]; q1.push(mp(dis[_to[i]], _to[i])); } } }}int main(){ scanf("%d%d", &n, &m); for(int i = 1; i <= m; i ++){ int a, b, c; scanf("%d%d%d", &a, &b, &c); add(a, b, c); add(b, a, c); } dij1(); int ans = 0; for(int i = 1; i != n; i = pre[i].fi){ used[pre[i].se] = 1; ans = max(ans, dij2()); used[pre[i].se] = 0; } printf("%d", ans); return 0;}
2 0
- 洛谷1186 玛丽卡
- 洛谷1186-玛丽卡
- 【洛谷 1186】 玛丽卡
- 洛谷1186 玛丽卡
- [练习][洛谷1186]最短路 玛丽卡
- luogu 1186 玛丽卡
- 洛谷 P1186 玛丽卡
- 洛谷 P1186 玛丽卡
- 洛谷 P1186 玛丽卡
- 洛谷 P1186 玛丽卡
- 洛谷 P1186 玛丽卡
- 玛丽卡
- 玛丽卡
- 玛丽卡
- 玛丽卡 (codevs p1021;洛谷p1186)
- 【洛谷 P1186】玛丽卡 spfa+删边
- 【最短路】玛丽卡
- wikioi 1021 玛丽卡
- 从二叉搜索树到平衡二叉搜索树
- Linux随手记
- 超漂亮DEDECMS提示框样式修改美化
- Java程序设计上机二
- C#控制台基础 查看当前正在运行的所有进程
- 【洛谷 1186】 玛丽卡
- shiro 授权过程的理解
- Spring学习总结(一).初探Spring
- RoaringBitmap源码分析一(AND操作)
- ImageView的android:adjustViewBounds属性
- C#之WinForm基础 打开的对话框可以选择多个文件
- 《Java编程思想第四版》笔记---18章(1) I/O 流基本概念
- CoordinatorLayout:AppBarLayout应用标题栏容器
- 最详细的WSDD配置文件注释