【CSP膜你赛】ATM
题目描述
小沈阳在小品里说过:“人生最痛苦的事情是人死了,钱还没花掉”。 于是小宋(80 岁)决定要将所有的储蓄从 ATM 机中取出花光。 小宋忘记 了她有多少存款(银行卡密码她是记得的 2333),这个奇怪的ATM不支持查询 存款余额功能。小宋知道她存款的唯一信息是存款上限是K元,这意味着小宋的存款 x 是 0 到 K 之间的随机整数(包括 K)。 每次小宋都可以尝试从 ATM 中拿出一些钱。 如果她要取的 y 元钱不大于 她的存款,ATM 将立即给小宋y元。 但如果她的存款小于y,小宋将收到ATM的警告。如果小宋被警告超过w次,那么她将被警方带走,作为小偷。 小宋希望取钱次数期望最小。 由于小宋聪明,她总是采取最好的策略。 请计算小宋将所有储蓄从自动取款机中取出期望次数最小值是多少,并不得被警方带走。
输入格式
每个测试点包含多组测试数据(最多 10 组)每组测试数据包含两个整数 K,和 W 1≤K,W≤2000
输出格式
对于每组测试数据输出取钱次数最小的期望值,舍入到小数点后 6 位。
输入样例
1 1
4 2
20 3
输出样例
1.000000
2.400000
4.523810
分析
我以为所谓的最优策略仅仅是二分,没想到这个80岁的老奶奶不仅会二分,还会期望dp
本题的最好策略的意思就是每次的选择期望次数最小的方案进行决策(语文不好的悲哀
取完不单单是指他存折里没钱了,小宋需要得到确定的信息告诉他取完了。
我们是已知上限$K$元,最多可以被警告$W$次(反正只有这两个信息)
发现每次取钱都可以确定新的上限
考虑末状态,根据我们对"取完"的理解
末状态就是已知上限0元,最多可以被警告$w$次($0 \leq w \leq W$)
这样就可以设$dp[i][j]$表示已知上限i元,最多还可以被警告j次的期望次数
那么就有$dp[0][j]=0(0 \leq j \leq W)$
枚举每次取的个数v,就可以转移了。
$$dp[i][j]=min(\frac {v} {i+1} dp[v-1][j-1]+\frac {i+1-v} {i+1}dp[i-v][j]+1)$$
然后可以突然发现时间复杂度为$O(N^2 W)$。
但是,正如之前所说
这个80岁的老奶奶是会二分答案的!
所以,$W$最大取到11就足够了($2^{11}=2048>2000$)
Code
#include<cstdio>
#include<algorithm>
using namespace std;
int n,m;double f[][];
int main()
{
for(int i=;i<=;i++)for(int j=;j<=;j++)f[i][j]=1e10;
for(int i=;i<=;i++)for(int j=;j<=;j++)for(int v=;v<=i;v++)
f[i][j]=min(f[i][j],(v)/1.0/(i+)*f[v-][j-]+(i+-v)/1.0/(i+)*f[i-v][j]+1.0);
while(scanf("%d%d",&n,&m)==)
{
m=min(,m);
printf("%.6lf\n",f[n][m]);
}
}
【CSP膜你赛】ATM的更多相关文章
- 【CSP膜你赛】大逃亡
题目描述 魔王撒旦为了建立魔物的乐土,率领亚多拉玛雷克.艾谢尔.路西菲尔.以 及马纳果达这四位恶魔大元帅进攻人类世界.然而此时手持圣剑的勇者艾米莉亚出现了. 战败的魔王逃跑时穿越到了地球,以真奥贞夫 ...
- 【CSP膜你赛】柠檬的密码(manacher 二分 单调性 st表)
题目描述 Lemon觉得他需要一个复杂的密码来保证他的帐号的安全.他经过多日思考,决定使用一个长度为奇数的回文串来作为他的密码. 但是这个回文串太长了,Lemon记不住,于是Lemon决定把它记在本 ...
- cdcqの省选膜你赛
cdcqの省选膜你赛 比赛当天因为在杠hnoi2016的大数据结构没有参加,今天补了一下.挺好玩的虽然不看一句话题意的话真的卡读题 此生无悔入东方,来世愿生幻想乡 2651. 新史「新幻想史 -现代史 ...
- 【良心noip膜你赛】总结
一点都不良心!!!! AK 快乐爆零快乐!!! 1. A. value512mb 1s规定一个区间的价值为这个区间中所有数 and 起来的值与这个区间所有数 or 起来的值的乘积.例如 3 个数 2, ...
- EZ 2018 1 21 2018noip第五次膜你赛
这次分数普遍偏高,而且yu'ben'ao又AK了! 但是最后一题莫名爆0让我很感伤啊(搓了1个多小时的20分暴力)! 难度偏低,主要是T2没剪枝,炸了3个点. T1 这种SB题恐怕是千年难遇了,PJ- ...
- EZ 2018 01 14 2018noip第四次膜你赛
这次惨烈的炸了个精光(只有20),然后对我的OI想法造成了巨大的转折. (以上有点作,其实我只是再也不用vector存图了而已(用邻接表)) 难度很不均匀,而且题型很狗(还有结论题???) T1 坑人 ...
- EZ 2017 12 30 2018noip第二次膜你赛
去年的比赛了,然而今天才改好. 总体难度适中,有大佬AK. 主要是自己SB第二题没想出来,然后又是可怜的100来分. T1 一道二分+数学的题目. 我们可以二分叫的次数,然后用公式(等差数列,公差都是 ...
- EZ 2017 12 17初二初三第一次膜你赛
以后平时练习还是写一写吧. (题目搞来搞去太烦了,直接PDF存起来) T1 水题(???),主要是数据水,正解是设一个阙值,然而根本没人打.(暴力出奇迹) CODE #include<cstdi ...
- 【20151105noip膜你赛】bzoj3652 bzoj3653
题目仿佛在讽刺我... 第一题: 题解: 考虑枚举区间右端点,维护所以左到当前的 and 和 or .注意 and 每次变化至少有一个二进制位从1变 0,or 每次至少有一个位从0变 1,所以最多有l ...
随机推荐
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile
更换当前jdk版本为项目所需jdk版本即可
- web技术栈开发原生应用-多端共用一套代码
weex: vuejs开发原生应用 nativescript: vuejs开发原生应用 ReactNative = reactjs开发原生应用 ionic = angularjs 开发原生应用
- 2019 珍岛java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.珍岛等公司offer,岗位是Java后端开发,因为发展原因最终选择去了珍岛,入职一年时间了,也成为了面试官,之 ...
- 【真】CSP2019退役记(upd:12.21)
这是第一次CSP(Counter-Strike Professor),也是最后一次. Day-1 上午考试,日常被虐. 下午颓mc Day0 上午考试,日常被虐. 下午颓mc 晚上看了下悬线法.最小表 ...
- 下拉框等需要显示上下箭头切换的CSS样式
下拉框等需要显示上下箭头切换的CSS样式 .icon-right, .icon-down, .icon-up { display: inline-block; padding-right: 13r ...
- android studio学习----调试---断点调试
Android Studio调试其实也非常方便,一般问题直接通过AS的DDMS的Logcat就可以搞定.AS支持类似Eclipse的DDMS的所有功能.这里要说的是疑难问题的调试方式,即断点调试. 首 ...
- SpringCloud SpringBoot 前后端分离企业级微服务架构源码赠送
基于SpringBoot2.x.SpringCloud和SpringCloudAlibaba并采用前后端分离的企业级微服务敏捷开发系统架构.并引入组件化的思想实现高内聚低耦合,项目代码简洁注释丰富上手 ...
- 最强在线文件格式转换(支持200+文件格式如常用的PDF,DOCX,JPG,GIF,MP3,MP4,FLV,MOBI)(通用)
网站展示:http://www.alltoall.net/ 分类简洁 支持的所有文件格式展示: 单独展示文档转换: 单独展示PDF转换:
- Excel 逐条导入Mysql(数据更新)
其实,我的业务流程是, 先读取excel/csv -> pandas 数据清洗 -> 导入Mysql, 一般是做一个表append 或者是 if exist -> replace的操 ...
- Jmeter 使用badyboy 录制脚本
在使用jemeter 做测试时,一般需要先录制脚本,这个过程可以通过手工添加采样器进行采样. 比较方便的方法是使用badboy 来录制脚本录制完脚本后使用jemeter 再做压力测试,大大加快测试进度 ...