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

CF24D Broken robot

时间:2018-10-15 20:47:12      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:through   pre   题意   include   转移   amp   line   scanf   robot   

题意翻译

你收到的礼物是一个非常聪明的机器人,行走在一块长方形的木板上。不幸的是,你知道它是坏的,表现得相当奇怪(随机)。该板由n行和m列的单元格组成。机器人最初是在i行和j j列的某个单元格上。然后在每一步机器人可以到另一个单元。目的是去底层(n次)行。机器人可以停留在当前单元,向左移动,向右边移动,或者移动到当前下方的单元。如果机器人在最左边的列不能向左移动,如果它是在最右边的列不能向右移动。在每一步中,所有可能的动作都是同样可能的。返回步的预期数量达到下面的行。

 

一道好好地高斯消元被打成了暴力……

不难看出这是一个环形后效性的dp

然而我并不会……

于是打了个暴力,就是每一层在转移的时候多转移几次……

竟然过了……

虽然跑得很慢……但代码很短啊……

 1 //minamoto
 2 #include<cstdio>
 3 const int N=1005;
 4 double dp[N][N],d[N];
 5 int n,m,a,b;
 6 int main(){
 7     scanf("%d%d%d%d",&n,&m,&a,&b);
 8     for(int i=1;i<=m;++i){
 9         d[i]=2;
10         if(i>1) ++d[i];if(i<m) ++d[i];
11     }
12     for(int i=a+1;i<=n;++i)
13     for(int t=0;t<100;++t)
14     for(int j=1;j<=m;++j){
15         double Q=dp[i][j-1]+dp[i][j]+dp[i-1][j]+dp[i][j+1];
16         dp[i][j]=1.0+Q/d[j];
17     }
18     printf("%.10lf\n",dp[n][b]);
19     return 0;
20 }

 

CF24D Broken robot

标签:through   pre   题意   include   转移   amp   line   scanf   robot   

原文地址:https://www.cnblogs.com/bztMinamoto/p/9792491.html

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