【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 ...
随机推荐
- drf--权限组件
目录 权限简介 局部使用 全局使用 源码分析 权限简介 权限就是某些功能只对特定的用户开放,比如django中创建用户可分为超级用户和普通用户,此时超级用户就有权限进入后台管理系统,而普通用户就没有权 ...
- Django的安全攻击
目录 Django的安全攻击 XSS XSS(跨站脚本攻击) 危害 原理 防护 csrf(Cross Site Request Forgery) csrf(跨站域请求伪造) 过程 Django 提供的 ...
- 树莓派Raspbian系统密码
树莓派Raspbian系统密码 树莓派Raspbian系统默认登录用户名为pi,该账户默认密码是raspberry(可在raspi-config中修改). 树莓派的Raspbian系统root用户默认 ...
- 关于UDP协议
UDP协议的特点. 1.UDP是一个无连接协议,传输数据之前接收端和发送端之间不建立连接. 想传输数据的时候就抓取数据扔出去,不监控是否被正确和全面的接受到. 2.因为不需要建立连接,也就不需要维护连 ...
- 【转载】C#使用InsertRange方法往ArrayList集合指定位置插入另一个集合
在C#的编程开发中,ArrayList集合是一个常用的非泛型类集合,ArrayList集合可存储多种数据类型的对象.在实际的开发过程中,我们可以使用InsertRange方法在ArrayList集合指 ...
- Java 之 线程的生命周期(线程状态)
一.线程的生命周期 (1)新建状态 new 好了一个线程对象,此时和普通的 Java对象并没有区别. (2)就绪 就绪状态的线程是具备被CPU调用的能力和状态,也只有这个状态的线程才能被CPU调用.即 ...
- Emmagee的基本使用
Emmagee的基本使用 注意:目前最新版本为2.5.1:由于谷歌限制仅支持安卓7.0以下版本: 一.Emmagee介绍 Emmagee是一个简单易上手的Android性能监测工具,主要用于监测单个A ...
- Introduction to Linux Threads
Introduction to Linux Threads A thread of execution is often regarded as the smallest unit of proces ...
- Django 数据库查询集合(多对多)
Django 数据库查询集合(双下划线连表操作) 目录: 1.Django环境搭建 2.数据库建表 3.写入数据 4.查询语句 Django环境搭建 1.安装django pip install dj ...
- js不常用,但很实用的功能
=============== 通知: 博主已迁至<掘金>码字,博客园可能以后不再更新,掘金地址:https://juejin.im/post/5a1a6a6551882534af25a8 ...