HDU 5001 Walk
解题思路:这是一道简单的概率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的更多相关文章
- Hdu 5001 Walk 概率dp
Walk Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5001 Desc ...
- 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 ...
- HDU 5001 Walk (暴力、概率dp)
Walk Time Limit: 30000/15000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Sub ...
- hdu 5335 Walk Out (搜索)
题目链接: hdu 5335 Walk Out 题目描述: 有一个n*m由0 or 1组成的矩形,探险家要从(1,1)走到(n, m),可以向上下左右四个方向走,但是探险家就是不走寻常路,他想让他所走 ...
- HDU 5001
http://acm.hdu.edu.cn/showproblem.php?pid=5001 每次去掉要算的点,求出到达其他点的概率,就是不能到达这个点的概率 开始想去算到达这个点的概率,再去减,不过 ...
- hdu 4444 Walk (离散化+建图+bfs+三维判重 好题)
Walk Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submi ...
- hdu 5001 从任意点出发任意走d步不经过某点概率
http://acm.hdu.edu.cn/showproblem.php?pid=5001 给定n个点m条边的无向图问从任意点出发任意走d步,从不经过某个点的概率 本想先算路过每个点的概率然后用1减 ...
- hdu 5001 概率DP 图上的DP
http://acm.hdu.edu.cn/showproblem.php?pid=5001 当时一看是图上的就跪了 不敢写,也没退出来DP方程 感觉区域赛的题 一则有一个点难以想到 二则就是编码有 ...
- HDU 4444 Walk (离散化建图+BFS+记忆化搜索) 绝对经典
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=4444 题意:给你一些n个矩形,给你一个起点,一个终点,要你求从起点到终点最少需要转多少个弯 题解:因为 ...
随机推荐
- iOS多线程的初步研究(九)-- dispatch源
dispatch源(dispatch source)和RunLoop源概念上有些类似的地方,而且使用起来更简单.要很好地理解dispatch源,其实把它看成一种特别的生产消费模式.dispatch源好 ...
- Linux下ps -ef和ps aux的区别及格式详解
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux.这两个到底有什么区别呢?两者没太大差别,讨论这个问题,要追溯到Unix系统中的两种风格, System V风格和BSD 风格 ...
- -ffunction-sections -Wl,--gc-sections
AVR/GCC设置不链接未调用的函数 http://blog.csdn.net/shevsten/article/details/7049688 在AVR Studio4/5的AVR/GCC默认设置下 ...
- Android核心分析之二十四Android GDI之显示缓冲管理
Android GDI之屏幕设备管理-动态链接库 万丈高楼从地起,从最根源的硬件帧缓冲区开始.我们知道显示FrameBuffer在系统中就是一段内存,GDI的工作就是把需要输出的内容放入到该段内存的某 ...
- Linux系统新手学习的11点建议
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起.这里介绍学习Linux的一些建议. 一.从基础开始:常常有些朋友在Linux论 ...
- 利用反射完成初级万能DAO
一.目标 利用反射完成初级万能DAO 二.注意 1.Field[] fi = clazz.getDeclaredFields(); for(Field ff : fi){ ff.setAccessib ...
- CactiEZ命令行添加主机监控参考
1.添加主机 php -q add_device.php --description= --community="public" 查询主机模板: php -q add_device ...
- MDX语法
https://msdn.microsoft.com/zh-cn/library/ms145506.aspx
- Data Flow ->> Character Map
这个组件可以实现几个功能,可以选择替换或者生成新的字段传递给下游用. 1)中文简体转繁体 2)英文字母大小写转换 3)字符在半角和全角间转换 4)byte字节倒转过来
- 卷积神经网络(CNN)
1. 概述 卷积神经网络是一种特殊的深层的神经网络模型,它的特殊性体现在两个方面,一方面它的神经元间的连接是非全连接的, 另一方面同一层中某些神经元之间的连接的权重是共享的(即相同的).它的非全连接和 ...