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

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

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
#include<cstring>
using namespace std;
const int N = ;
const int M = ;
double dp[N][M];
int n, m, t, d;
vector<int> v[M]; //vector表示不定长数组 double solve(int x)
{
double ans = ;
memset(dp, , sizeof(dp));
for(int i = ; i <= n; i++) dp[][i] = 1.0/n;// 表示还没走时,走到每个点的概率
for(int i = ; i < d; i++)
{
for(int j = ; j <= n; j++)
{
if(j == x) continue; //不会走到与自己相同的点上
int s = v[j].size(); //与点j相连的数有多少个
for(int k = ; k < s; k++)
{
int c = v[j][k]; //与j相连的第k个数
dp[i+][c] += dp[i][j]*1.0/s; //这里很难给你讲清楚,自己好好思考
//心中有个具体的场景就更好
}
}
}
for(int i = ; i <= n; i++)
{
if(i == x) continue;
ans += dp[d][i]; //第d步到其它所有点的概率之和为
//第d步没走到第x点的概率。
}
return ans;
} int main()
{
int a, b;
scanf("%d", &t);
while(t--)
{
scanf("%d %d %d", &n, &m, &d);
for(int i = ; i <= n; i++) v[i].clear();
while(m--)
{
scanf("%d %d", &a, &b);
v[a].push_back(b); //向尾部添加元素,关于vector的用法,自己参考资料
v[b].push_back(a);
}
for(int i = ; i <= n; i++) printf("%.10lf\n", solve(i));
}
return ;
}

HDU 5001 Walk的更多相关文章

  1. Hdu 5001 Walk 概率dp

    Walk Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5001 Desc ...

  2. HDU - 5001 Walk(概率dp+记忆化搜索)

    Walk I used to think I could be anything, but now I know that I couldn't do anything. So I started t ...

  3. HDU 5001 Walk (暴力、概率dp)

    Walk Time Limit: 30000/15000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  4. hdu 5335 Walk Out (搜索)

    题目链接: hdu 5335 Walk Out 题目描述: 有一个n*m由0 or 1组成的矩形,探险家要从(1,1)走到(n, m),可以向上下左右四个方向走,但是探险家就是不走寻常路,他想让他所走 ...

  5. HDU 5001

    http://acm.hdu.edu.cn/showproblem.php?pid=5001 每次去掉要算的点,求出到达其他点的概率,就是不能到达这个点的概率 开始想去算到达这个点的概率,再去减,不过 ...

  6. hdu 4444 Walk (离散化+建图+bfs+三维判重 好题)

    Walk Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submi ...

  7. hdu 5001 从任意点出发任意走d步不经过某点概率

    http://acm.hdu.edu.cn/showproblem.php?pid=5001 给定n个点m条边的无向图问从任意点出发任意走d步,从不经过某个点的概率 本想先算路过每个点的概率然后用1减 ...

  8. hdu 5001 概率DP 图上的DP

    http://acm.hdu.edu.cn/showproblem.php?pid=5001 当时一看是图上的就跪了 不敢写,也没退出来DP方程 感觉区域赛的题  一则有一个点难以想到 二则就是编码有 ...

  9. HDU 4444 Walk (离散化建图+BFS+记忆化搜索) 绝对经典

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4444 题意:给你一些n个矩形,给你一个起点,一个终点,要你求从起点到终点最少需要转多少个弯 题解:因为 ...

随机推荐

  1. elasticsearch 八、重要的配置更改

    http://jingyan.baidu.com/article/7908e85c9fc626af491ad263.html

  2. **关于PHP如何定义一个空对象(REST API如何处理空对象和空数组)

    在写接口的过程当中,手机端有需求说不让返回json数组,要返回一个对象. 那么我们可以怎么做呢? 其实很简单,强制转换即可. 声明空对象: $empty_object=(object)array(); ...

  3. Jmeter 快速入门教程(三-3) -- 使用参数化

    参数化:简单的来理解一下,我们录制了一个脚本,这个脚本中有登录操作,需要输入用户名和密码,假如系统不允许相同的用户名和密码同时登录,或者想更好的模拟多个用户来登录系统. 这个时候就需要对用户名和密码进 ...

  4. postgresql数据库的yum安装方法

    实验环境>>>>>>>>>>>>>>>>>>操作系统:CentOS release 6.3 ...

  5. Template

    创建win32应用程序空工程 //main.cpp//time: 01/08/2013 #include<d3d9.h>#include <d3dx9.h> #pragma c ...

  6. JavaWeb项目开发案例精粹-第4章博客网站系统-004Service层

    1. package com.sanqing.service; import java.util.List; import com.sanqing.fenye.Page; import com.san ...

  7. uchome 积分体系

    一.总体流程 1):管理员在后台修改积分规则2):数据被写入数据表creditrule 中,并将数据写入缓存文件data/data_creditrule.php 中3):用户发表文章或者进行其他操作的 ...

  8. iOS sqlite3数据库解析

    看来从版本3.3.1基本上已经支持线程句柄的传递功能.具体限制我标记了一下.(6) Is SQLite threadsafe?SQLite is threadsafe. We make this co ...

  9. C# windows 服务编写及安装

      最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作不成功,可能是开发环境或项目配置的不同,这里 ...

  10. Linux命令-free

    显示系统内存使用情况 free  [-m / -g / -h] [root@localhost test]# free -m total used free shared buff/cache ava ...