洛谷P2719 搞笑世界杯 题解 概率DP入门
- 作者:zifeiy
- 标签:概率DP
题目链接:https://www.luogu.org/problem/P2719
我们设 f[n][m]
用于表示还剩下n张A类票m张B类票时最后两张票相同的概率,则:
- 如果 \(n \le 1\) 且 \(m \le 1\) ,则 \(f[n][m] = 0\) (凑不齐两张一样的)
- 否则,如果 \(n == 0\) 或者 \(m == 0\),则 \(f[n][m] = 1\) (肯定是一样的两张票)
- 否则,\(f[n][m] = (f[n-1][m] + f[n][m-1]) \times 0.5\) (有一半的概率拿走一张A类票,另一半的概率拿走一张B类票)
所以我们可以按照如下思路编写代码如下:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1300;
double f[maxn][maxn];
int n;
int main() {
scanf("%d", &n);
n /= 2;
for (int i = 0; i <= n; i ++) {
for (int j = 0; j <= n; j ++) {
if (i < 2 && j < 2) f[i][j] = 0.;
else if (i == 0 || j == 0) f[i][j] = 1.;
else f[i][j] = 0.5 * (f[i-1][j] + f[i][j-1]);
}
}
printf("%.4lf\n", f[n][n]);
return 0;
}
记忆化搜索方式写的代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1300;
bool vis[maxn][maxn];
double f[maxn][maxn];
int n;
double dfs(int n, int m) {
if (vis[n][m]) return f[n][m];
vis[n][m] = true;
if (n <= 1 && m <= 1) return 0.;
if (n == 0 || m == 0) return 1.;
f[n][m] = 0.5 * (dfs(n-1, m) + dfs(n, m-1));
return f[n][m];
}
int main() {
scanf("%d", &n);
n /= 2;
printf("%.4lf\n", dfs(n, n));
return 0;
}
洛谷P2719 搞笑世界杯 题解 概率DP入门的更多相关文章
- 洛谷——P2719 搞笑世界杯
题目背景 很久很久以后,一次世界杯,. 题目描述 随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰,让人心痛不已. 于是有人组织了一场搞笑世界杯,将这些被淘汰的强队重新组织起来和世界杯一同比 ...
- 洛谷 P2719 搞笑世界杯
题目传送门 解题思路: f[i][j]表示买i张A票,j张B票的概率. AC代码: #include<iostream> #include<cstdio> using name ...
- 洛谷P2858 奶牛零食 题解 区间DP入门题
题目大意: 约翰经常给产奶量高的奶牛发特殊津贴,于是很快奶牛们拥有了大笔不知该怎么花的钱.为此,约翰购置了 \(N(1 \le N \le 2000)\) 份美味的零食来卖给奶牛们.每天约翰售出一份零 ...
- 洛谷P2507 [SCOI2008]配对 题解(dp+贪心)
洛谷P2507 [SCOI2008]配对 题解(dp+贪心) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1299251 链接题目地址:洛谷P2507 [S ...
- 洛谷P1850 换教室(概率dp)
传送门 我的floyd竟然写错了?今年NOIP怕不是要爆零了? 这就是一个概率dp 我们用$dp[i][j][k]$表示在第$i$个时间段,已经申请了$j$次,$k$表示本次换或不换,然后直接暴力转移 ...
- 洛谷P1220 关路灯 题解 区间DP
题目链接:https://www.luogu.com.cn/problem/P1220 本题涉及算法:区间DP. 我们一开始要做一些初始化操作,令: \(p[i]\) 表示第i个路灯的位置: \(w[ ...
- 洛谷 P1879 玉米田(状压DP入门题)
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 题解: 相关变量解释: int M,N; int plant[maxn][maxn];/ ...
- P2719 搞笑世界杯
P2719 搞笑世界杯我觉得这个难度是假的,如果不知道这个是dp我就做不出来,好吧,知道我也没做出来..f[i][j]表示剩i张A票,j张B票时,最后两张票相同的概率.当前的队首有一半的概率选A,一半 ...
- 洛谷P2832 行路难 分析+题解代码【玄学最短路】
洛谷P2832 行路难 分析+题解代码[玄学最短路] 题目背景: 小X来到了山区,领略山林之乐.在他乐以忘忧之时,他突然发现,开学迫在眉睫 题目描述: 山区有n座山.山之间有m条羊肠小道,每条连接两座 ...
随机推荐
- go struct 抽象
package main import ( "fmt" ) //定义一个结构体Account type Account struct { AccountNo string Pwd ...
- awk notes
字符串拼接 cat sql | awk '{print " ALTER TABLE tableA ALTER " $1 " TYPE " $2 " ...
- Sass @at-root (2)
@at-root和&的结合 &在Sass中所起的作用,文章开头就简单的进行演示了.在@at-root中也同样可以配合&一起使用,下面我们同样来看几个用例: SCSS .foo ...
- iOS - CAReplicatorLayer 的运用
http://www.cocoachina.com/ios/20151230/14822.html 序 CAReplicatorLayer可以复制自己子层的layer,并且复制的出来的layer和原来 ...
- SQL优化经验总结34条
SQL优化经验总结34条 我们要做到不但会写SQL,还要做到写出性能优良的SQL,以下为笔者学习.摘录.并汇总部分资料与大家分享! (1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): OR ...
- day3-转自金角大王
本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...
- 猜年龄v2.0
''' 用户登录,只有三次机会 给定年龄,用户可以猜三次年龄 年龄猜对,让用户选择两次奖励,输入无效字符,让其选择要不要礼物 用户选择两次奖励后可以退出,选择第一次后提示还有一次 ''' #基本信息定 ...
- python 顺序传入
- Libevent:2设置
Libevent有一些整个进程共享的全局设置.这些设置会影响到整个的库.因此必须在调用Libevent其他函数之前进行设置,否则,LIbevent就会陷入不一致的状态. 一:Libevent中的日志信 ...
- laravel 的路由中间件
简介# Laravel 中间件提供了一种方便的机制来过滤进入应用的HTTP请求.例如,Laravel 内置了一个中间件来验证用户的身份认证 , 如果没有通过身份认证,中间件会将用户重定向到登陆界面,但 ...