HDU 3853 LOOPS
来源:互联网 发布:校园寝室网络设计方案 编辑:程序博客网 时间:2024/06/05 15:25
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3853
题意:有一个n×m的矩阵,起点是(1,1) 终点是(n,m),每个点都有三个概率,向下走,向右走,在原地(除了边界)。求走到终点的期望步数。
思路:f[i][j]表示在(i,j)点到终点的期望步数。f[i][j] = p1 * f[i+1][j] + p2 * f[i][j+1] + p3 * f[i][j] + 2。化简得,f[i][j] = p1 / ( 1 - p3 ) * f[i+1][j] + p2 / ( 1 - p3 ) * f[i][j+1] + 2 / ( 1 - p3 ).如果p3为1,那么这个点就不能走,所以f[i][j]为0。
#include <cstdio>#include <cmath>#include <cstring>#include <string>#include <cstdlib>#include <iostream>#include <algorithm>#include <stack>#include <map>#include <set>#include <vector>#include <sstream>#include <queue>#include <utility>using namespace std;#define rep(i,j,k) for (int i=j;i<=k;i++)#define Rrep(i,j,k) for (int i=j;i>=k;i--)#define Clean(x,y) memset(x,y,sizeof(x))#define LL long long#define ULL unsigned long long#define inf 0x7fffffff#define mod %100000007const int maxn = 1010;struct node{ double p[3];};node a[maxn][maxn];double ans[maxn][maxn];int n,m;void init(){ rep(i,1,n) rep(j,1,m) scanf("%lf %lf %lf",&a[i][j].p[0],&a[i][j].p[1],&a[i][j].p[2]); Clean(ans,0);}void solve(){ ans[n][m] = 0; Rrep(i,n,1) Rrep(j,m,1) { if ( i == n && j == m ) continue; if ( a[i][j].p[0] == 1 ) ans[i][j] = 0; else ans[i][j] = ( a[i][j].p[1] * ans[i][j+1] + a[i][j].p[2] * ans[i+1][j] + 2.0 ) / ( 1 - a[i][j].p[0] ); }}int main(){ while( ~scanf("%d%d",&n,&m) ) { init(); solve(); printf("%0.3f\n",ans[1][1]); } return 0;}
0 0
- hdu 3853 LOOPS
- hdu 3853 LOOPS
- HDU 3853 LOOPS
- hdu 3853 LOOPS
- hdu 3853 LOOPS
- hdu 3853 LOOPS
- [hdu 3853] LOOPS
- hdu 3853 LOOPS(期望)
- hdu 3853 LOOPS DP
- HDU 3853 — LOOPS
- HDU 3853 LOOPS
- HDU 3853 LOOPS
- hdu 3853 LOOPS
- HDU 3853 LOOPS
- HDU 3853 LOOPS
- hdu 3853 LOOPS
- HDU 3853 LOOPS
- hdu 3853 LOOPS 概率dp
- IN4007和IN4148的作用
- LeetCode 367 Valid Perfect Square
- Android Studio connot resolve symbol "XXX" 无法解析的符号
- 好的博客
- 143、约瑟夫问题
- HDU 3853 LOOPS
- 介绍27款经典的CSS框架
- DES加密解密C/C++
- android程序中的AndroidManifest.xml中的uses-feature详解
- spirngMVC如何在项目中打印异常日志+springmvc事务控制详解
- iOS dispatch_time_t
- MAC 下使用 Sublime Text 3 添加Perl编译支持
- java中的CountDownLatch
- NodeJS学习三之API