洛谷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条羊肠小道,每条连接两座 ... 
随机推荐
- ASP.NET自定义控件组件开发 第一章    第一章:从一个简单的控件谈起
			第一章:从一个简单的控件谈起 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.NET自定义控件组件开发 第一章 第二篇 接着待续 ASP.NET自定义控件组件开发 第一章 第三 ... 
- spring boot 异常处理(转)
			spring boot在异常的处理中,默认实现了一个EmbeddedServletContainerCustomizer并定义了一个错误页面到"/error"中,在ErrorMvc ... 
- redis是当前流行的nosql数据库
			redis是当前流行的nosql数据库,很多网站都用它来做缓存,今天我们来安装并配置下redis 二.安装并配置redis 1.安装redis sudo apt-get install redis-s ... 
- python装饰器2
			装饰模式有很多经典的使用场景,例如插入日志.性能测试.事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的.下面就一步步看看Python中的装饰器. 一个简单 ... 
- Ajax--Ajax基于原生javascript:创建Ajax对象、链接服务器、发送请求、接受响应结果
			Ajax概述 异步:指某段程序执行时不会阻塞其它程序执行,其表现形式为程序的执行顺序不依赖程序本身的书写顺序,相反则为同步. 同步请求: 请求是由浏览器发送 页面会刷新 异步请求: 请求是由浏览器的一 ... 
- 【Leetcode 滑动窗口】顺次数(1291)
			题目 我们定义「顺次数」为:每一位上的数字都比前一位上的数字大 1 的整数. 请你返回由 [low, high] 范围内所有顺次数组成的 有序 列表(从小到大排序). 示例 1: 输出:low = ... 
- Apache Camel 与 Spring Boot 集成,通过FTP定时采集、处理文件 (转)
			1.概要: 本项目主要是通过在Spring平台上配置Camel.FTP,实现定时从FTP服务器下载文件到本地.解析文件.存入数据库等功能. 2.搭建空项目: Spring Boot有几种自动生成空项目 ... 
- WPF/Silverlight深度解决方案:(九)HLSL自定义渲染特效之完美攻略(下)
			原文:WPF/Silverlight深度解决方案:(九)HLSL自定义渲染特效之完美攻略(下) 本想只用两节来完成关于HLSL自定义渲染相关知识的讲解,鉴于最近非常的多的朋友对此相当感兴趣,想知道最多 ... 
- 2018-9-2-WPF-开发自动开机启动程序
			title author date CreateTime categories WPF 开发自动开机启动程序 lindexi 2018-09-02 15:10:52 +0800 2018-9-2 14 ... 
- Kubernetes1.3新特性:rktnetes
			(一) 背景资料 对于Kubernetes来说,从架构设计上就是支持Docker和CoreOS rkt两种容器的,在1.2版本中,最低支持CoreOS rkt 0.13.0版本,这个rkt版本算是一 ... 
