标签: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