zoukankan      html  css  js  c++  java
  • HDU 5001 Walk

    解题思路:这是一道简单的概率dp,只要处理好相关的细节就可以了。

        dp[d][i]表示走d步时走到i的改概率,具体参考代码:

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 #include<vector>
     5 #include<cstring>
     6 using namespace std;
     7 const int N = 10005;
     8 const int M = 55;
     9 double dp[N][M];
    10 int n, m, t, d;
    11 vector<int> v[M]; //vector表示不定长数组
    12 
    13 double solve(int x)
    14 {
    15    double ans = 0;
    16    memset(dp, 0, sizeof(dp));
    17    for(int i = 1; i <= n; i++) dp[0][i] = 1.0/n;// 表示还没走时,走到每个点的概率
    18    for(int i = 0; i < d; i++)
    19    {
    20        for(int j = 1; j <= n; j++)
    21        {
    22            if(j == x) continue; //不会走到与自己相同的点上
    23            int s = v[j].size(); //与点j相连的数有多少个
    24            for(int k = 0; k < s; k++)
    25            {
    26                int c = v[j][k]; //与j相连的第k个数
    27                dp[i+1][c] += dp[i][j]*1.0/s; //这里很难给你讲清楚,自己好好思考
    28                                             //心中有个具体的场景就更好
    29            }
    30        }
    31    }
    32    for(int i = 1; i <= n; i++)
    33    {
    34        if(i == x) continue;
    35        ans += dp[d][i]; //第d步到其它所有点的概率之和为
    36                         //第d步没走到第x点的概率。
    37    }
    38    return ans;
    39 }
    40 
    41 int main()
    42 {
    43     int a, b;
    44     scanf("%d", &t);
    45     while(t--)
    46     {
    47         scanf("%d %d %d", &n, &m, &d);
    48         for(int i = 1; i <= n; i++) v[i].clear();
    49         while(m--)
    50         {
    51             scanf("%d %d", &a, &b);
    52             v[a].push_back(b); //向尾部添加元素,关于vector的用法,自己参考资料
    53             v[b].push_back(a);
    54         }
    55         for(int i = 1; i <= n; i++) printf("%.10lf
    ", solve(i));
    56     }
    57     return 0;
    58 }
    View Code
  • 相关阅读:
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    团 队 作 业 ———— 随 堂 小 测
    Alpha 冲刺 (5/10)
    Alpha 冲刺 (4/10)
    Beta冲刺博客汇总(麻瓜制造者)
    Beta冲刺(3/5)(麻瓜制造者)
    快速搭建一个Express工程骨架
    个人作业——软件产品案例分析
  • 原文地址:https://www.cnblogs.com/loveprincess/p/4839530.html
Copyright © 2011-2022 走看看