codeforces 20C 只能用dijstra堆优化或者spfa
来源:互联网 发布:程序员职业规划之道pdf 编辑:程序博客网 时间:2024/05/16 04:11
inf这个数没开大!!!wa了17次!
一定要注意范围……………………555555555555555555555555555555
AC代码:
#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <queue>using namespace std;const int maxe=1e6+10;const int maxv=1e5+10;const long long inf=9e13;int which=1;int N,M;int head[maxv];struct EDGE{ int d,w,next; EDGE():next(-1){}}e[maxe];void add(int s,int d,int w){ e[which].d=d; e[which].w=w; e[which].next=head[s]; head[s]=which++;}void init(){ memset(e,0,sizeof(e)); memset(head,-1,sizeof(head));}struct p{ int pn,dist; friend bool operator<(p a,p b) { return a.dist>b.dist; }};long long dis[maxv];int pre[maxv];priority_queue<p> Q;bool settled[maxv];void dij(int st){ while(!Q.empty()) Q.pop(); memset(settled,0,sizeof(settled)); for(int i=1;i<=N;i++) dis[i]=inf; dis[st]=0; p stt; stt.pn=st,stt.dist=0; Q.push(stt); while(!Q.empty()) { p t=Q.top(); Q.pop(); //if(t.pn==N) return 1; if(settled[t.pn]) continue; settled[t.pn]=1; for(int i=head[t.pn];i!=-1;i=e[i].next) { int to=e[i].d; int mid=t.pn; if(!settled[to]&&dis[to]>dis[mid]+e[i].w) { dis[to]=dis[mid]+e[i].w; p tt; tt.pn=to; tt.dist=dis[to]; pre[tt.pn]=t.pn; Q.push(tt); } } } //return 0;}void Find(int x){ if(x!=1) Find(pre[x]); if(x!=1) printf(" "); printf("%d",x);}int main(){ //cout<<inf<<endl; while(scanf("%d%d",&N,&M)==2) { which=1; init(); memset(pre,0,sizeof(pre)); int t1,t2,t3; for(int i=1;i<=M;i++) { scanf("%d%d%d",&t1,&t2,&t3); add(t1,t2,t3); add(t2,t1,t3); } dij(1); if(dis[N]!=inf) Find(N); else printf("-1"); printf("\n"); }}
阅读全文
0 0
- codeforces 20C 只能用dijstra堆优化或者spfa
- 最短路dijstra 堆优化
- dijstra邻接表+堆优化模板
- 堆优化SPFA
- SPFA 堆优化模板
- codeforces 20 c 堆优化dijkstra + 路径打印
- TOJ 2217. Invitation Cards【最短路dijkstra+堆优化或者SPFA】
- TOJ 2217. Invitation Cards【最短路dijkstra+堆优化或者SPFA】
- 堆优化 Dijstra单源最短路径算法 2(邻接表)
- poj 1511 邻接表+堆优化的dijstra
- Dijstra算法---普通版、优先队列优化版、堆优化版
- hdu2544 最短路 Dijstra算法堆优化,Bellman-Ford,Bellman-Ford队列优化
- 【spfa(栈)或者 堆优dijkstra】poj3159
- dijstra+优先队列优化
- Dijstra 单源最短路径算法 堆优化-1(二维数组存储数据)
- P3371 【模板】单源最短路径 SPFA优化 dijkstra堆优化
- CodeForces 187C Weak Memory SPFA+heap
- POJ 2253 - 最短路变形 SPFA+Dijstra
- 初识Linux
- hdu1114Piggy-Bank (完全背包)
- POJO对象
- java获取调用者文件多,类名,方法,行号信息
- spark读取mongodb(maven)
- codeforces 20C 只能用dijstra堆优化或者spfa
- Snax(方便实现skynet服务)
- linux c 实现 获取系统内存,某进程cpu利用率,以及某端口的网络状况
- (hnust 1601)名字缩写(map存储前缀)
- 普通树(非二叉树)和森林的深度优先遍历和广度优先遍历说明
- jmeter 安装插件
- 各种获取控件坐标的方法总结
- 初来乍到
- JAVA学习笔记之(四)函数