zoj1655(最短路)
来源:互联网 发布:网络黄金egd还有希望吗 编辑:程序博客网 时间:2024/06/04 01:36
//求n到其他点的损率的乘积最大 #include<cstdio>#include<iostream>#include<cstring>#include<queue>using namespace std;const int mn=105,mm=40005;struct Edge{int to,next;double w;}edges[mm];int n,m,head[mn],tot,inq[mn];double dis[mn],w[mn];void add(int u,int v,double w){edges[tot].to=v;edges[tot].w=w;edges[tot].next=head[u];head[u]=tot++;edges[tot].to=u;edges[tot].w=w;edges[tot].next=head[v];head[v]=tot++;}void spfa() {memset(dis,0,sizeof(dis));//这个地方要注意啊 memset(inq,0,sizeof(inq)); dis[n]=1; inq[n]=1; deque<int> q; q.push_back(n); while(q.size()) { int x=q.front(); q.pop_front(); inq[x]=0; for(int i=head[x];~i;i=edges[i].next) { int v=edges[i].to; if(dis[v]<dis[x]*edges[i].w) { dis[v]=dis[x]*edges[i].w; if(!inq[v]) { if(q.size()&&dis[v]>dis[q.front()]) q.push_front(v); else q.push_back(v); inq[v]=1; } } } } }int main(){int u,v;double ww;while(~scanf("%d%d",&n,&m)){tot=0;memset(head,-1,sizeof(head));for(int i=1;i<n;++i)scanf("%lf",w+i);for(int i=0;i<m;++i){scanf("%d%d%lf",&u,&v,&ww);add(u,v,1-ww);}spfa();double ans=0;for(int i=1;i<n;++i)ans+=dis[i]*w[i];printf("%.2lf\n",ans);}return 0;}
阅读全文
1 0
- zoj1655(最短路)
- zoj1655
- ZOJ1655
- 最短路(最短路)
- HDOJ2544 最短路(最短路)
- 最短路 (Dijstra) 最短路
- HDU2544:最短路(最短路)
- hdu2544(最短路)
- 随笔(最短路)
- hdu3790 (最短路)
- 最短路(dijkstra)
- 最短路--(迪杰斯特拉)
- 最短路(dijkstra)
- poj1535(最短路)
- HLJOJ1214(最短路)
- 最短路(Dijkstra)
- 最短路(floyd)
- 最短路(Bellman_Ford)
- WatchOS系统开发大全(3)-创建第一个WatchApp工程
- Qt笔记-TabWidget
- 关于file文件,通过file文件对图片进行操作
- 神奇的操作 [vector、二分]
- 排序算法小结(python 实现)
- zoj1655(最短路)
- NYOJ1058 部分和问题
- spring常用注解(未完待续)
- 仿IOS样式对话框
- 关于雅克比矩阵与黑塞矩阵
- Interger
- 谷歌研究发现优秀的团队必须具备这五个关键特质
- CSS学习笔记
- hive基础(二)--HQL语句