贴个模板,POJ 1511
来源:互联网 发布:c语言转换汇编语言 编辑:程序博客网 时间:2024/06/03 21:47
N个点M条边,有向图,求1到其余各点的最短距离与各点到1的距离最短的路径总和。
N M 1E6
朴素必跪。。。
Dijkstra堆优化和SPFA应该都能过。
因为是有向图,求1到各点的距离,直接原图上跑SPFA。。
求各点回到1的距离,将边反转(from变to ,to 变from),在新图上再跑一遍SPFA。
8S的题,7S卡过,真尼玛2333333。。单纯的贴个SPFA的模板,以后说不定有用-- 。。
#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<queue>#include<vector>using namespace std;const int maxn=1000055;const long long inf=1000000005;bool Inq[maxn];long long dis[maxn];int A[maxn],B[maxn],C[maxn];int n,m;struct edge{ int to; long long w;};vector<edge> G[maxn];void spfa(int src){ for(int i=0;i<maxn;i++) { dis[i]=inf; } dis[src]=0; memset(Inq,0,sizeof(Inq)); queue<int > q; Inq[src]=1; q.push(src); while(!q.empty()) { int cur=q.front(); q.pop(); Inq[cur]=0; for(int i=0;i<G[cur].size();i++) { edge& E=G[cur][i]; if(dis[E.to]>dis[cur]+E.w) { dis[E.to]=dis[cur]+E.w; if(Inq[E.to]==0) { q.push(E.to); Inq[E.to]=1; } } } }}int main(){ ios_base::sync_with_stdio(false); int t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(int i=0;i<=maxn;i++) { G[i].clear(); } for(int i=0;i<m;i++) { scanf("%I64d%I64d%I64d",&A[i],&B[i],&C[i]); G[A[i]].push_back((edge) {B[i],C[i]}); //G1[to].push_back((edge) {from,w}); } spfa(1); long long ans=0; for(int i=2;i<=n;i++) { ans+=dis[i]; } for(int i=0;i<=maxn;i++) { G[i].clear(); } for(int i=0;i<m;i++) { // scanf("%I64d%I64d%I64d",&A[i],&B[i],&C[i]); G[B[i]].push_back((edge) {A[i],C[i]}); //G1[to].push_back((edge) {from,w}); } spfa(1); for(int i=2;i<=n;i++) { ans+=dis[i]; } printf("%I64d\n",ans); } return 0;}
0 0
- 贴个模板,POJ 1511
- POJ 2051 Argus 堆排序 贴个模板
- POJ 1511 SPFA 模板
- 贴个manachar模板
- poj 1511 spfa 模板题
- 无聊贴个KMP模板
- POJ 3461 Oulipo【KMP】【模板题】(找出第一个字符串在第二个字符串中出现次数)
- 【KMP模板】POJ 3461
- POJ 2761 (SBT模板)
- POJ 2533 LIS模板
- POJ 1458 LCS模板
- poj 3264(模板RMQ)
- poj 3080 kmp模板
- POJ 3264 RMQ模板
- poj 3246 RMQ模板
- POJ 1442 Treap模板
- POJ 2417 BSGS模板
- Prim 模板 POJ 3625
- 组件的使用(一)Spinner的使用
- HDU 4283 You Are the One(区间dp)
- 二叉树的遍历
- java 数据结构之 链式线性表
- ios 随机数 int x = arc4random() % 100;
- 贴个模板,POJ 1511
- bind搭建dns,ping域名需要几秒才能通
- 关于文件和文件夹在复制后属性时间变化的细节问题
- 03_TortoiseGit冲突和补丁演示,补丁冲突
- 《开源公开课1》:开源框架构建与实践
- java 数据结构之 顺序存储结构 栈
- HDU 1686 Oulipo
- Nginx master工作流程
- java 数据结构之 链式存储结构 栈