码迷,mamicode.com
首页 > 其他好文 > 详细

【HDU】3853 LOOPS

时间:2015-02-21 00:16:09      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:

http://acm.hdu.edu.cn/showproblem.php?pid=3853

题意:n×m的格子,起始在(1,1),要求走到(n,m),在每一格(i,j)有三种走法,其中p[i,j,0]的概率留在原地,p[i,j,1]的概率走到(i,j+1),p[i,j,2]的概率走到(i+1, j),问期望步数。(n,m<=1000)

#include <cstdio>
#include <cstring>
using namespace std;

const int N=1005;
int n, m;
double p[N][N][3], d[N][N];
const double eps=1e-10;
double abs(double x) { return x<0?-x:x; }
int main() {
	while(~scanf("%d%d", &n, &m)) {
		memset(d, 0, sizeof d);
		for(int i=1; i<=n; ++i)
			for(int j=1; j<=m; ++j)
				for(int k=0; k<3; ++k)
					scanf("%lf", &p[i][j][k]);
		for(int i=n; i>=1; --i)
			for(int j=m; j>=1; --j)
				if(!(i==n&&j==m) && abs(1-p[i][j][0])>eps)
					d[i][j]=(d[i][j+1]*p[i][j][1]+d[i+1][j]*p[i][j][2]+2)/(1-p[i][j][0]);
		printf("%.3f\n", d[1][1]);
	}
	return 0;
}

  

裸题= =分类讨论之..由于互斥然后线性求一下就行了= =

 

【HDU】3853 LOOPS

标签:

原文地址:http://www.cnblogs.com/iwtwiioi/p/4296765.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!