zoj1655 spfa 最长路径
2014-08-05 21:43
337 查看
将权值设为1-p,求从点n到各点的最大权值之积
#include <queue> #include <vector> #include <cstdio> #include<string.h> #include <iostream> #include <algorithm> using namespace std; typedef long long ll; void here(int k) {cout<<k<<endl;} const double eps=1e-8; double num[110];int n,m; double rat[110]; double graph[110][110]; void spfa() { for(int i=1;i<=n;i++)rat[i]=0; rat =1; queue<int>que; que.push(n); while(!que.empty()) { int v=que.front(); que.pop(); for(int i=1;i<n;i++) if(rat[i]<rat[v]*graph[v][i]) { rat[i]=rat[v]*graph[v][i]; que.push(i); } } } int main() { while(scanf("%d %d",&n,&m)!=EOF) { memset(graph,0,sizeof(graph)); for(int i=1;i<n;i++) cin>>num[i]; for(int i=1;i<=m;i++) { int a,b; double c; cin>>a>>b>>c; if(graph[a][b]<1-c) graph[a][b]=graph[b][a]=1-c; } spfa(); double sum=0; for(int i=1;i<n;i++) sum+=num[i]*rat[i]; printf("%.2f\n",sum); } return 0; }
相关文章推荐
- zoj 3088 spfa 最短&最长路径
- zoj 1655 Transport Goods(最短路径)
- (floyed反求最长路径)ZOJ 2797 106 miles to Chicago
- POJ 1860 Currency Exchange / ZOJ 1544 Currency Exchange (最短路径相关,spfa求环)
- ZOJ 3795 Grouping 强联通 最长路径
- ZOJ 2432 Greatest Common Increasing Subsequence(最长公共上升子序列+路径打印)
- SDUT 2498 AOE网上的关键路径(SPFA 最长路径)
- hdoj 1317 XYZZY 【spfa判断正环求最长路径&&floyd求传递闭包】
- HDU 1317--XYZZY 【spfa判断正环求最长路径 && floyd求传递闭包】
- 图算法补充(SPFA,最长路径)
- HDU 1069 Monkey and Banana / ZOJ 1093 Monkey and Banana (最长路径)
- POJ 1201 & HDU1384 & ZOJ 1508 Intervals(差分约束+spfa 求最长路径)
- POJ 1201 & HDU1384 & ZOJ 1508 Intervals(差分约束+spfa 求最长路径)
- AOE网上的关键路径(spfa+按字典序输出最长路)
- 几个最短路径算法Floyd、Dijkstra、Bellman-Ford、SPFA的比较
- zoj2136 经典动态规划 求最长上升子序列
- 编程实现求一棵二叉树的最短树路径和最长树路径
- [LeetCode] Longest Absolute File Path 最长的绝对文件路径
- zoj 3103 Cliff Climbing (SPFA)
- Burn the Linked Camp ZOJ 2770 差分约束系统 SPFA