【HDU】3853 LOOPS

系统 1780 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


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论