求巨佬帮看dijkstra模板谢谢!

P3371 【模板】单源最短路径(弱化版)

@[tan_gent](/space/show?uid=31728) 最好直接用`for`初始化数组…… ~~头像好评~~
by info___tion @ 2019-05-10 21:12:29


@[tan_gent](/space/show?uid=31728) ```cpp #include <bits/stdc++.h> using namespace std; #define LL long long int n,m,s; LL a[10009][10009]; LL d[10009]; bool vis[10009]; LL f,g,w; int main(){ scanf("%d %d %d",&n,&m,&s); memset(a,0x3f,sizeof(a)); memset(d,0x3f,sizeof(d)); d[s]=0; for(int i=1;i<=m;i++){ scanf("%d %d %d",&f,&g,&w); a[f][g]=min(w,a[f][g]); } int nn=n; int minn,minx; while(nn--){ minn=0x3f3f3f3f; minx=0; for(int x=1;x<=n;x++){ if(d[x]<minn&&vis[x]==0){ minn=d[x]; minx=x; } } vis[minx]=1; for(int i=1;i<=n;i++){ if(a[minx][i]<0x3f3f3f3f){ d[i]=min(d[i],d[minx]+a[minx][i]); } } } for(int i=1;i<=n;i++){ printf("%lld ",d[i]); } printf("\n"); return 0; } ``` 这样应该就行了
by Genius_Z @ 2019-05-10 21:14:58


哦,好的,感谢各位的帮助!
by si_zhong @ 2019-05-10 21:16:41


@[Genius_Z](/space/show?uid=110271)
by si_zhong @ 2019-05-10 21:16:46


@[Genius_Z](/space/show?uid=110271) 等等,全MLE是为什么?
by si_zhong @ 2019-05-10 21:19:24


@[tan_gent](/space/show?uid=31728) 其实这题全开int就够用了
by Genius_Z @ 2019-05-10 21:20:01


$10000 * 10000$的long long肯定会MLE
by Genius_Z @ 2019-05-10 21:20:41


1e8的int也会的吧......
by 111l @ 2019-05-10 21:21:09


还是建议lz学习一下邻接表存图
by 111l @ 2019-05-10 21:21:57


刚才看了一下这题空间128M,邻接矩阵应该过不去emm,1e8的int是380M左右,所以还是建议lz学一下邻接表吧 @[tan_gent](/space/show?uid=31728)
by Genius_Z @ 2019-05-10 21:24:27


上一页 | 下一页