【UVA】821-Page Hopping(Floyd)
2014-08-19 18:00
399 查看
模板题,求一个点到任何一点的距离,用Floyd就行了,结点不一定是从1 ~ n 的,所以需要记录结点的id
14063895 | 821 | Page Hopping | Accepted | C++ | 0.119 | 2014-08-19 10:00:27 |
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<vector> #include<stack> #include<queue> #include<map> #include<set> #include<list> #include<cmath> #include<string> #include<sstream> #include<ctime> using namespace std; #define _PI acos(-1.0) #define INF (1 << 10) #define esp 1e-9 typedef long long LL; typedef unsigned long long ULL; typedef pair<int,int> pill; /*=========================================== ===========================================*/ #define MAXD 100 + 10 int G[MAXD][MAXD]; int main(){ int a , b; int Case = 1; while(scanf("%d%d",&a,&b)){ if(!a && !b) break; for(int i = 1 ; i <= 100 ; i++) for(int j = 1; j <= 100 ; j++) if(i == j) G[i][j] = 0; else G[i][j] = INF; map<int,int>vis; vector<int>node; G[a][b] = 1; while(scanf("%d%d",&a,&b)){ if(!a && !b) break; G[a][b] = 1; if(!vis.count(a)){ node.push_back(a); vis[a] = 1; } if(!vis.count(b)){ node.push_back(b); vis[b] = 1; } } for(int k = 0 ; k < node.size() ; k++) for(int i = 0 ; i < node.size() ; i++) for(int j = 0 ; j < node.size() ; j++) if(G[node[i]][node[k]] < INF && G[node[k]][node[j]] < INF) G[node[i]][node[j]] = min(G[node[i]][node[j]],G[node[i]][node[k]] + G[node[k]][node[j]]); int sum = 0; for(int i = 0 ; i < node.size() ; i++) for(int j = 0 ; j < node.size() ; j++){ sum += G[node[i]][node[j]]; } double ans = 1.0 * sum / ((node.size() -1)* node.size()); printf("Case %d: average length between pages = %.3f clicks\n",Case++,ans); } return 0; }
相关文章推荐
- UVA 821 Page Hopping (Floyd)
- uva821 Page Hopping( Floyd )
- [floyd]UVa821 - Page Hopping
- uva 821 Page Hopping 最短路floyd
- Uva821 Page Hopping(最短路径Floyd应用)
- UVa 821 - Page Hopping(Floyd)
- UVa 821 网页跳跃(Floyd)
- UVa 821 - Page Hopping
- UVA 821 Page Hopping(最短路)
- UVA 821(p379)----Page Hopping
- UVA821 PageHopping (Floyd)
- UVa 821 Page Hopping【Floyd】
- Uva821-Floyd
- uva 821 floyd
- UVa 821 - Page Hopping
- UVA - 821 - Page Hopping(floyd算法)
- UVA 821 - Page Hopping (flody应用)
- UVA - 208 Firetruck(floyd+DFS)
- Arbitrage (Uva 104 dp+floyd)
- UVA 10099 The Tourist Guide【floyd】