标签:小数点 scan 表示 return ace stream const 内存 代码
toura.in
输出文件:toura.out
简单对比时间限制:1 s 内存限制:128 MB
#include<cstdio> #include<algorithm> #include<queue> #include<iostream> using namespace std; const int N=1e5+10; const double eps=1e-9; struct edge{int f,t,l;}w[N]; int n,m,head[N],next[N],tail[N],cnt; void add(int f,int t,int l) { w[++cnt]=(edge){f,t,l}; if (!head[f]) head[f]=tail[f]=cnt; else tail[f]=next[tail[f]]=cnt; } double dis[N];bool inque[N]; void spfa() { queue<int> Q; for (int i=1;i<=n;i++) dis[i]=0; dis[1]=1;Q.push(1); while (!Q.empty()) { int v=Q.front();Q.pop(); inque[v]=0; for (int i=head[v];i;i=next[i]) if (dis[w[i].t]+eps<dis[v]/100*w[i].l) { dis[w[i].t]=dis[v]/100*w[i].l; if (!inque[w[i].t]) inque[w[i].t]=1,Q.push(w[i].t); } } } int main() { freopen("toura.in","r",stdin); freopen("toura.out","w",stdout); scanf("%d%d",&n,&m); for (int i=1,f,t,l;i<=m;i++) { scanf("%d%d%d",&f,&t,&l); add(f,t,l);add(t,f,l); } spfa(); printf("%.6lf\n",100*dis[n]); return 0; }
标签:小数点 scan 表示 return ace stream const 内存 代码
原文地址:http://www.cnblogs.com/lyqlyq/p/7191666.html