hdu3853:LOOPS
题目大意:r*c个点,每个点有Aij的概率回到自己本身,Bij的概率向右一格,Cij的概率向下一格,求从(1,1)到(r,c)的期望步数。
题解:有了hdu4405的经验,从后往前推期望。那么,E(i,j)=E(i,j)*Aij+E(i,j+1)*Bij+E(i+1,j)*Cij+2,注意加上“又消耗了两点”,闪一下,变成E(i,j)=(E(i,j+1)*Bij+E(i+1,j)*Cij+2)/(1-Aij),问题马上产生!!!当Aij=1怎么办呢?
注意到Aij=1时,走进这个格就再也走不出来。因此你可以把到(i,j)的期望置0。这样,在计算期望的时候若用到这个点,可以当它不存在,不存在从到达这个点的情形。
它让你烦躁,为何不忽视它?
代码:
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std; int n,m;
#define maxn 1011
#define eps 1e-9
double E[maxn][maxn],A[maxn][maxn],B[maxn][maxn],C[maxn][maxn];
int main()
{
while (scanf("%d%d",&n,&m)==)
{
for (int i=;i<=n;i++) for (int j=;j<=m;j++)
scanf("%lf%lf%lf",&A[i][j],&B[i][j],&C[i][j]);
E[n][m]=0.0;
for (int i=n;i>;i--) for (int j=m;j>;j--)
{
if (i==n && j==m) continue;
if (fabs(A[i][j]-)<eps) continue;
E[i][j]=(B[i][j]*E[i][j+]+C[i][j]*E[i+][j]+2.0)/(-A[i][j]);
}
printf("%.3lf\n",E[][]);
}
return ;
}
hdu3853:LOOPS的更多相关文章
- HDU 3853:LOOPS(概率DP)
http://acm.split.hdu.edu.cn/showproblem.php?pid=3853 LOOPS Problem Description Akemi Homura is a M ...
- 【HDU3853】LOOPS [期望DP]
LOOPS Time Limit: 5 Sec Memory Limit: 64 MB[Submit][Status][Discuss] Description Akemi Homura is a ...
- 【HDU3853】LOOPS
题意 有一个R*C的方格.一个人想从(1,1)走到(r,c).在每个格子都有三种选择,向下,向右,或者原地不动.每个格子里的每个选择都有一定的概率.而每次移动都需要消耗2点的能量,问期望消耗的能量是多 ...
- 【期望DP】
[总览] [期望dp] 求解达到某一目标的期望花费:因为最终的花费无从知晓(不可能从$\infty$推起),所以期望dp需要倒序求解. 设$f[i][j]$表示在$(i, j)$这个状态实现目标的期望 ...
- Unity3D UGUI之DoTweenAnimation脚本控制动画方法
DOTweenAnimation脚本: Loops循环:-1时即永久循环播放. Loops Type 是选择播放模式. Ease属性里有很多,暂时只知道Linear的效果,其他有待单独写. ID下面可 ...
- 游戏主循环(Game Loop)
游戏主循环是游戏的心跳,一般使用while循环进行主动刷新. 一次循环由获取用户输入.更新游戏状态.处理AI.播放音乐和绘制画面组成. 这些行为可以分成两类: update_game(); // 更新 ...
- SharePoint 2013 开发——SharePoint Designer 2013工作流
博客地址:http://blog.csdn.net/FoxDave SharePoint Designer 2013为开发者和高级用户提供了两种创建定制工作流的模式: 基于文本的设计器--即我们一直 ...
- c++有默认参数的函数---4
原创博客:转载请标明出处:http://www.cnblogs.com/zxouxuewei/ 1.默认参数的目的 C++可以给函数定义默认参数值.通常,调用函数时,要为函数的每个参数给定对应的实参. ...
- ARM CPU与Intel x86 CPU性能比较
Qualcomm ARM CPU与Intel x86 CPU性能比较 随着移动互联网时代的到来,Qualcomm(高通).Texas Instruments(德州仪器)等基于ARM架构的CPU受到越来 ...
随机推荐
- Java程序操作数据库SQLserver详解
数据库基本操作:增删改查(CRUD) crud介绍(增.删.改.查操作) CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Del ...
- filter和map的使用
if ( this.dataAggridvue.filter( item => item.Accepted == true && item.InvoiceGroupCode != ...
- android AutoCompleteTextView 实现手机号格式化,附带清空历史的操作
有个小伙伴遇到了这样一个问题,就是AutoCompleteTextView实现自动填充的功能.同时要具备手机格式化的功能.下拉列表最后一行是有个清除历史的功能.可是点击“清除历史”却把文字要设置进去A ...
- mac自带终端安装完ohmyZsh后显示乱码
修改描述文件-添加 选择新导入的 Meslo LG M Regular for Powerline
- Redis学习笔记(三)列表进阶
RPOPLPUSH source destination(弹出source列表最右端的元素,并推入destination的最左端,同时返回这个元素) BRPOPLPUSH source destina ...
- c# sqlserver连接字符串
odbc: string cnnstring = @"Driver={SQL Server Native Client 11.0};Initial Catalog = sxquadb;ser ...
- SQLite – LIMIT子句
SQLite - LIMIT子句 SQLite LIMIT子句是用来限制SELECT语句返回的数据量. 语法: SELECT语句.LIMIT子句的基本语法如下: SELECT column1, col ...
- (转)Spring4.2.5+Hibernate4.3.11+Struts2.3.24整合开发
http://blog.csdn.net/yerenyuan_pku/article/details/52902851 前面我们已经学会了Spring4.2.5+Hibernate4.3.11+Str ...
- 模板引擎freemarker的使用(二)
freemarker默认配置使用时,如果传到前端的值为null或者不存在,后台会报错. 处理方法: <bean id="freemarkerConfig" class=&qu ...
- 关闭Visual Studio 2015 关闭单击打开文件的功能
工具-->选项-->环境-->选项卡和窗口-->预览选项卡 去掉“在解决方案资源管理器中预览选定的文件(在按住Alt的同时单击可避免预览)(X)”的勾选