HDU 4487 Maximum Random Walk

Maximum Random Walk

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 756    Accepted Submission(s): 419

三维dp,一维的话根本没有办法开展,二维的话没办法保存当前位置或者最远位置,所以只能用三维的。

看不懂滚动数组之类的操作,只能傻傻的写。

具体内容在代码里标注了,三重循环,从i,j,k的状态递推它之后的状态。

在我看来,递推DP有两种,一种是从当前状态推出其他状态,一种是推导当前状态是怎么来的。

这个题只能写前者,因为如果写后者的话,K的更新比较麻烦,不好处理。

上一个题写后者就比较容易,还是得做题体会吧。。。

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define mem(a,b) memset(a,b,sizeof(a))
 4 #define ll long long
 5 #define inf 1000000000
 6 #define maxn 300
 7 #define maxm 100005
 8 #define eps 1e-10
 9 #define for0(i,n) for(int i=1;i<=(n);++i)
10 #define for1(i,n) for(int i=1;i<=(n);++i)
11 #define for2(i,x,y) for(int i=(x);i<=(y);++i)
12 #define for3(i,x,y) for(int i=(x);i>=(y);--i)
13 #define mod 1000000007
14 inline int read()
15 {
16     int x=0,f=1;char ch=getchar();
17     while(ch<'0'||ch>'9') {if(ch=='-') f=-1;ch=getchar();}
18     while(ch>='0'&&ch<='9') {x=10*x+ch-'0';ch=getchar();}
19     return x*f;
20 }
21 float dp[101][201][201];//表示走了i步后到达j点b并且最远达到k的概率
22 //什么时候考虑这个状态向外发散,什么时候考虑这个状态由其他几个状态飞来
23 int main()
24 {
25     int T;
26     while(~scanf("%d",&T))
27     {
28         for(int i=1;i<=T;++i)
29         {
30             int index=read();
31             mem(dp,0);
32             printf("%d ",index);
33             int n=read();
34             double pl,pr;
35             scanf("%lf%lf",&pl,&pr);
36             double pk=1-pl-pr;
37             dp[0][100][100]=1;
38             int l=100-n,r=100+n;
39             for(int j=0;j<n;++j)//考虑的是,从j,k,h走向下一步的所有可能
40              for(int k=l;k<=r;++k)
41               for(int h=100;h<=100+n;++h)
42                {
43                    dp[j+1][k][h]+=dp[j][k][h]*pk;
44                    dp[j+1][k-1][h]+=dp[j][k][h]*pl;
45                    if(k+1>h) dp[j+1][k+1][k+1]+=dp[j][k][h]*pr;
46                    else dp[j+1][k+1][h]+=dp[j][k][h]*pr;
47                }
48             double ans=0;
49             for(int j=l;j<=r;++j)
50               for(int k=100;k<=r;++k)
51                 ans+=(k-100)*dp[n][j][k];
52             printf("%.4lf\n",ans);
53         }
54     }
55 }
56  

 

转载于:https://www.cnblogs.com/TYH-TYH/p/9408996.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/413620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

工作323:uni-获取时间参数

let date new Date();let dateYear date.getFullYear(); //获取年 let dateMonth date.getMonth(); //获取月 let dateDate date.getDate(); //获取当日let dateDay date.getDay(); //获取当日星期数let da…

深入浅出JVM-GC过程

深入浅出JVM-GC过程Minor GC对象进入老年代的4种情况Full GC空间分配担保Minor GC Minor GC过程 假设现在Heap内存大小为20M&#xff0c;其中年轻代为10M&#xff0c;老年代为10M&#xff0c;年轻代中Eden区6M&#xff0c;From区2M&#xff0c;To区2M&#xff0c;新创建的对象…

工作324:uni-时间过滤器封装

filters: {toChangeDate(e) {console.log(new Date(e).getFullYear())console.log(new Date(e).getMonth())console.log(new Date(e).getDay())let dateYear new Date(e).getFullYear(); //获取年 let dateMonth new Date(e).getMonth()1<10? 0 new Date(e).getMonth() …

[Python] 制作启动uiautomator2 的web版 uiautomatorviewer2 批处理启动

打开一个txt文件&#xff0c;复制如下命令进行并另存为为 .bat文件 1 echo on 2 echo 正在启动 uiautomatorviewer2 3 4 python -m weditor 5 6 echo off 注意&#xff1a;如果批处理里面有中文的话&#xff0c;一定要将 txt 文本的编码方式设置为 ANSI 编码进行保存&#xf…

工作325:uni-日期小于10补0

// 创建补0函数 function pZone (s) {return s < 10 ? 0 s : s }pZone(num)

深入理解java虚拟机--线程安全与锁优化

深入理解java虚拟机--线程安全与锁优化面向过程编程思想和面向对象编程思想java语言中的线程安全线程安全的实现方法锁优化面向过程编程思想和面向对象编程思想 面向过程编程思想&#xff1a;站在计算机的角度&#xff0c;以算法为核心&#xff0c;数据是客体&#xff0c;程序…

配置mysql环境变量

配置mysql环境变量&#xff08;非必要&#xff09; 说明&#xff1a;给mysql配置环境变量后我们就可以在cmd里运行mysql&#xff08;开启、停止等操作&#xff09; 1. 和其实环境变量的配置方法一样&#xff0c;我们打开环境变量配置窗口&#xff08;组合键winPause -> 更改…

工作325:uni-格式化日期

/*格式化日期&#xff1a;yyyy-MM-dd*/formatDate(date) {var myyear date.getFullYear();var mymonth date.getMonth() 1;var myweekday date.getDate();if (mymonth < 10) {mymonth "0" mymonth;}if (myweekday < 10) {myweekday "0" mywe…

微信小程序获取unionid为空

微信小程序获取unionid为空原因&#xff1a;未绑定微信开放平台绑定步骤原因&#xff1a;未绑定微信开放平台 最新在调试一个新的微信小程序&#xff0c;因为要对web授权登录、app授权登录、小程序授权登录&#xff1b;几种登录场景根据unionid来开放登录。但是授权出现获取un…

《精通Python设计模式》学习之原型模式

暂时在工作中&#xff0c;还没有用到呢~~~ 以后要留意一下&#xff0c;主要用于复制对象副本&#xff0c; 然后又有自定义属性的地方。 import copy from collections import OrderedDictclass Book:def __init__(self, name, authors, price, **rest):self.name nameself.aut…

alipay.data.bill.balance.query ISV权限不足

alipay.data.bill.balance.query ISV权限不足alipay.data.bill.balance.query是支付宝商家账户当前余额查询接口&#xff1b;目前调用该接口返回 ISV权限不足 完整返回&#xff1a; {"body":"{"alipay_data_bill_balance_query_response":{"cod…

[css] 你有用过animation-fill-mode属性吗?它有什么应用场景

[css] 你有用过animation-fill-mode属性吗&#xff1f;它有什么应用场景 动画播放完成之后的动作&#xff0c;比如可以定义动画播放完成之后回到初始状态个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨…

[css] 用css实现一个等腰三角形的小图标

[css] 用css实现一个等腰三角形的小图标 <style>.box{width: 0;height: 0;margin: 100px auto;border-width: 0px 200px 200px 200px;border-style: solid;border-color: transparent transparent red transparent;}</style>个人简介 我是歌谣&#xff0c;欢迎和大…

shell语法 06-Linux文本处理-grep

grep命令在一个或多个文件中查找某个字符模式。如果这个模式中包含空格&#xff0c;就必须用引号把它括起来。grep Tom /etc/passwd grep 将在文件中查找/etc/passwd 中查找模式 Tom。结果如下&#xff1a; 查找成功&#xff0c;文件中相应行会显在屏幕上没有找到指定的模式&am…

[css] 使用css实现蒙版的效果

[css] 使用css实现蒙版的效果 filter: blur(1px)个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

redis启动警告解决

背景 最近在测试环境重启后,redis启动遇到了三个警告 第一个警告&#xff1a;The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128. 第二个警告&#xff1a;overcommit_memory is set to 0! Background…

[css] 父元素下有子元素,子元素也有高度但父元素的高度为何为0呢?分析下可能出现的原因及解决方法

[css] 父元素下有子元素&#xff0c;子元素也有高度但父元素的高度为何为0呢&#xff1f;分析下可能出现的原因及解决方法 父元素塌陷父元素在文档流中高度默认是被子元素撑开的&#xff0c;当子元素脱离文档流以后&#xff0c;将无法撑起父元素的高度&#xff0c;也就会导致父…

[css] 假如css的分号写在声明块之外,将会发生什么呢?解释下原因

[css] 假如css的分号写在声明块之外&#xff0c;将会发生什么呢&#xff1f;解释下原因 这样写第一条规则的分号会被放到第二条规则的句首解析&#xff0c;导致第二条解析报错&#xff0c;从而略过。<style> p {color: blue} ;.p1 {color: red} .p2 {color: green} <…

树莓派安装vnc server并设置自启动

在SSH终端输入sudo raspi-config, 这里需要打开几个选项: expand_rootfs – 将根分区扩展到整张SD卡;change_pass – 默认的用户名是pi&#xff0c;密码是raspberry;change_timezone – 更改时区, 选择Asia – Shanghai;configure_keyboard, 选English&#xff08;US&#xff0…

[css] 如何阻止:hover、:active等鼠标行为状态的触发?

[css] 如何阻止:hover、:active等鼠标行为状态的触发&#xff1f; css属性&#xff1a;pointer-events: none;应用 避免重复提交---按钮点击后 即增加该属性 使其不 链接不可跳转---指定a标签加上该属性 点击被上方元素覆盖的下方链接---上方元素添加该属性个人简介 我是歌谣…