luogu P2384 最短路 spfa+数学?
Posted qingyuyyyyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了luogu P2384 最短路 spfa+数学?相关的知识,希望对你有一定的参考价值。
#include<cstdio> #include<queue> #include<cstring> #include<cmath> #include<iostream> #define mod 9987 using namespace std; const int N=1000005; int e[N],ne[N],w[N],idx; queue<int> q; int h[1005],po[1005][2],vis[1005],tot=0; double dis[1005]; int n,m; void add(int a,int b,int c) { e[idx]=b; w[idx]=c; ne[idx]=h[a]; h[a]=idx++; } int main() { memset(h,-1,sizeof h); cin>>n>>m; while(m--) { int a,b,c; cin>>a>>b>>c; add(a,b,c); } memset(dis,127,sizeof(dis)); dis[1]=0; vis[1]=1; q.push(1); while(q.size()) { int now=q.front(); q.pop(); vis[now]=0; for(int i=h[now]; ~i; i=ne[i]) { int v=e[i]; if(dis[v]>dis[now]+log(w[i])) { dis[v]=dis[now]+log(w[i]); po[v][0]=now; po[v][1]=w[i]; if(!vis[v]) { vis[v]=1; q.push(v); } } } } int ans=1,pos=n; while(pos!=1) { ans*=po[pos][1]; ans%=mod; pos=po[pos][0]; } printf("%d ",ans); return 0; }
以上是关于luogu P2384 最短路 spfa+数学?的主要内容,如果未能解决你的问题,请参考以下文章
SPFA板子 (背景:Luogu P3371 单源最短路径)
20171109Luogu P3371 模板单源最短路径--SPFA