Gym 101606F - Flipping Coins - [概率DP]
题目链接:https://codeforc.es/gym/101606/problem/F
题解:
假设 $f[i][j]$ 表示抛 $i$ 次硬币,有 $j$ 个硬币正面朝上的概率。
所以只有两种挑选硬币的情况:
1.正面硬币数量为 $[0,n-1]$,选择反面硬币抛,则正面硬币数量比原本增加 $1$ 或者不变。
2.正面硬币数量为 $n$,随便选择一个硬币抛,则正面硬币数量比原本减少 $1$ 或者不变。
因此可得状态转移方程:
对于 $j<n$,有 f[i+][j+]+=f[i][j]*0.5, f[i+][j]+=f[i][j]*0.5;
对于 $j=n$,有 f[i+][n]+=f[i][n]*0.5, f[i+][n-]+=f[i][n]*0.5;
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int MAX=;
int n,k;
double f[MAX][MAX];
int main()
{
cin>>n>>k;
f[][]=;
for(int i=;i<k;i++)
{
for(int j=;j<n;j++)
{
f[i+][j]+=f[i][j]*0.5;
f[i+][j+]+=f[i][j]*0.5;
}
f[i+][n]+=f[i][n]*0.5;
f[i+][n-]+=f[i][n]*0.5;
}
double ans=;
for(int j=;j<=n;j++) ans+=f[k][j]*j;
printf("%.8f\n",ans);
}
(好吧,只能说概率和期望我是真的不会做……)
Gym 101606F - Flipping Coins - [概率DP]的更多相关文章
- atcoderI - Coins ( 概率DP)
I - Coins Time Limit: 2 sec / Memory Limit: 1024 MB Score : 100100 points Problem Statement Let NN b ...
- 2017 ICPC乌鲁木齐 A Coins 概率dp
Coins 题意:一开始所有n个硬币都是反面朝上的,每次必须拿k个来抛,抛的人足够聪明,问m次之后向上的硬币的期望. 首先说了这个足够聪明的意思,就是只要向反面的有k个就不会sb地去拿向正面的来抛,想 ...
- 2017 ICPC Asia Urumqi A.coins (概率DP + 期望)
题目链接:Coins Description Alice and Bob are playing a simple game. They line up a row of nn identical c ...
- HDU5985 Lucky Coins 概率dp
题意:给你N种硬币,每种硬币有Si个,有Pi 概率朝上,每次抛所有硬币抛起,所有反面的拿掉,问每种硬币成为最后的lucky硬币的概率. 题解:都知道是概率dp,但是模拟赛时思路非常模糊,很纠结,dp[ ...
- HDU.5985.Lucky Coins(概率DP)
题目链接 \(Description\) 有n(n<=10)种硬币,已知每种硬币的数量和它抛一次正面朝上的概率pi.进行如下过程:每次抛一次所有硬币,将正面朝下的硬币去掉.重复该过程直到只剩一种 ...
- Atcoder Educational DP Contest I - Coins (概率DP)
题意:有\(n\)枚硬币,每枚硬币抛完后向上的概率为\(p[i]\),现在求抛完后向上的硬币个数大于向下的概率. 题解:我们用二维的\(dp[i][j]\)来表示状态,\(i\)表示当前抛的是第\(i ...
- Gym 101174D Dinner Bet(概率DP)题解
题意:n个球,两个人每人选C个球作为目标,然后放回.每回合有放回的拿出D个球,如果有目标球,就实现了这个目标,直到至少一个人实现了所有目标游戏结束.问结束回合的期望.误差1e-3以内. 思路:概率DP ...
- poj 2096 Collecting Bugs 概率dp 入门经典 难度:1
Collecting Bugs Time Limit: 10000MS Memory Limit: 64000K Total Submissions: 2745 Accepted: 1345 ...
- Collecting Bugs (概率dp)
Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other material stu ...
随机推荐
- oracle建表 和 设置主键自增
1.新建table CREATE TABLE ysb_log( id ) primary key not null , tbdate ) NULL, tb_time ) NOT NULL, tblog ...
- Maven 构建浏览器解析userAgent类
创建Maven项目 添加pom.xml 依赖 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&qu ...
- Python3:递归实现输出目录下所有的文件
今天来整理一下os库中方法的使用,如何输出一个目录下的所有文件? 1.首先介绍几个基本的的方法: 1)os.getcwd() #返回当前工作目录 2)os.listdir() #返回一个列表, ...
- scala可变var与不可变val的理解
我们定义变量的时候分为var可变变量和val不可变变量. 我们使用容器的时候也分为可变容器和不可变容器. List和Tuple本身就是不可变的,set和map分为可变和不可变的,默认为不可变. 我们看 ...
- xls添加 序号列技巧
问题背景:在给xls添加一列序列时常碰到一个问题,用下拉很不科学(如果行数很多):用双击需要右边有一列不断开的数据列. 方法一:在A1 =row()回车,选择范围,快捷键 ctrl+d, 复制其文 ...
- kettle 数据迁移
最近在公司搞一个项目重构迁移问题,旧项目一直在线上跑,重构的项目则还没上线.重构之后数据库表结构,字段,类型等都有变化,而且重构的数据库由oracl改为mysql.这样就设计到数据迁移问题,别人推荐下 ...
- swagger-ui中测试接口(enum传值) 报400错误
swagger-ui中测试接口(enum传值) 报400错误 PriceRuleController: @PostMapping("/update") @ApiOperation( ...
- 将.NET Core部署在Docker
转载自:ASP.NET Core 2.1 使用Docker运行 1.新建ASP.NET Core项目 新建一个名为“DockerSample”的ASP.NET Core项目 运行程序,页面如下: 2. ...
- Django—入门
索引 1.搭建环境 2.创建项目 3.设计模型 4.管理站点 5.视图及URL 6.模板 软件框架 问题1:什么是软件框架? 举个简单的例子,对于一个公司来说,公司中有各个职能部门,每个部门各司其职, ...
- Intellij Idea 2016创建web项目
一.创建简单web项目 1.创建一个web project File -> new Project ->选择project sdk 为1.8(已经配过环境变量)其他不要选 -> Ne ...