标签:des style blog http color io os java ar
每次都去掉一个点求出到达 其他点的概率就是不能到达这个点的概率。
2 5 10 100 1 2 2 3 3 4 4 5 1 5 2 4 3 5 2 5 1 4 1 3 10 10 10 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 4 9
0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.0000000000 0.6993317967 0.5864284952 0.4440860821 0.2275896991 0.4294074591 0.4851048742 0.4896018842 0.4525044250 0.3406567483 0.6421630037
#include <algorithm> #include <iostream> #include <stdlib.h> #include <string.h> #include <iomanip> #include <stdio.h> #include <string> #include <queue> #include <cmath> #include <stack> #include <map> #include <set> #define eps 1e-12 ///#define M 1000100 #define LL __int64 ///#define LL long long ///#define INF 0x7ffffff #define INF 0x3f3f3f3f #define PI 3.1415926535898 #define zero(x) ((fabs(x)<eps)?0:x) using namespace std; const int maxn = 10010; double dp[55][maxn]; double ans[55]; vector<int>g[55]; int main() { int T; cin >>T; while(T--) { int n, m, d; scanf("%d %d %d",&n, &m, &d); for(int i = 1; i <= n; i++) g[i].clear(); int x, y; for(int i = 1; i <= m; i++) { scanf("%d %d",&x, &y); g[x].push_back(y); g[y].push_back(x); } for(int p = 1; p <= n; p++) { memset(dp, 0, sizeof(dp)); for(int i = 1; i <= n; i++) dp[i][0] = 1.0/n; for(int i = 0; i < d; i++) { for(int j = 1; j <= n; j++) { if(j == p) continue; int N = g[j].size(); for(int k = 0; k < N; k++) { int u = g[j][k]; dp[u][i+1] += dp[j][i]*(1.0/N); } } } ans[p] = 0.0; for(int i = 1; i <= n; i++) { if(i == p) continue; ans[p] += dp[i][d]; } printf("%.9lf\n",ans[p]); } } return 0; }
标签:des style blog http color io os java ar
原文地址:http://blog.csdn.net/xu12110501127/article/details/39254403