蓝桥杯 算法训练 印章
蓝桥杯 算法训练 印章
共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
输入输出:
一行两个正整数n和m
一个实数P表示答案,保留4位小数。
样例:
2 3
0.7500
这是个dp问题,存在两个变量,印章种类和购买的个数可以使用二维数组来进行模拟dp[m][n]
来表示在购买m个印章的情况下,存在n种印章数的情况
对情况进行分析
对于dp[i][j]
第一种情况 : i < j
即购买的印章小于存在的印章种类 ,概率肯定为0
第二种情况:i = j && j = 1
即只购买一种的情况下,存在一种印章的可能性,为1
i > j && j = 1
即购买的所有印章种类都一样,概率为 P ^ i * n = (1/n)^(i-1)
第三种情况:i > j && j != 1
在中间状态的情况,分为两种,一种是第 i 买的印章种类已经存在, 第二种是第 i 次买的印章还没有存在
dp[i - 1][j] * (j * P)
dp[i - 1][j - 1] * (n - (j - 1)) * P
这两种情况相加,就是中间类型的情况
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>using namespace std;const int N = 25;
double dp[N][N];
int n,m;int main()
{cin >> n >> m;double P = 1.0 / n;for(int i = 1;i < m;i ++){for(int j = 1;j < n; j ++){if(i < j) dp[i][j] = 0;if(j == 1) dp[i][j] = pow(P,i-1);else{dp[i][j] = dp[i-1][j] * (P * j) + dp[i-1][j-1] * ((n - j + 1) * P);}}}printf("%.4lf",dp[m][n]);return 0;
}
蓝桥杯 算法训练 印章相关推荐
- 蓝桥杯算法训练 印章
蓝桥杯 算法训练 印章 问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 一行两个正整数n和m 输出格式 一个实数P表示答案,保 ...
- 蓝桥杯-算法训练 印章
试题 算法训练 印章 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 一行两个正整 ...
- 蓝桥杯算法训练-印章
这一题是10月份新加的题,网上也没啥答案,标签为dp动态规划,实际上我觉得不用动态规划也能做,毕竟python是自带了求组合数的函数,下面来看一下吧. 试题 算法训练 印章 资源限制 时间限制:1.0 ...
- C语言-蓝桥杯-算法训练 印章
问题描述 共有 n 种图案的印章,每种图案的出现概率相同.小A买了 m 张印章,求小A集齐 n 种印章的概率. 输入格式 一行两个正整数n和m. 输出格式 一个实数P表示答案,保留4位小数. 样例输入 ...
- 蓝桥杯算法训练 印章 C语言实现
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 一行两个正整数n和m 输出格式 一 ...
- 蓝桥杯 算法训练 幸运的店家
蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...
- 蓝桥杯 算法训练 Beaver's Calculator
蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...
- 蓝桥杯算法训练-24点(Python)
问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...
- 蓝桥杯——算法训练——数字三角形
蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...
最新文章
- Java实现单链表的逆转置
- vim-plug 插件安装
- 设置ALV单元格可编辑状态
- 队列的C语言实现(通过内核链表)
- python len ljust_Python string.ljust方法代码示例
- nginx之虚拟主机与请求的分发
- java---解析XML文件,通过反射动态将XML内容封装到一个类中
- MySQL之终端(Terminal)管理MySQL
- python统计中文字数_Python实现统计文本文件字数的方法
- mysql怎么生成sql文件_sql如何生成sql文件
- 网关中间件研发首选一站式API协作平台:Eolink
- Linux网络操作系统及应用教程(项目式)项目四
- 数据库----如何将oracle语句转换成mysql语句
- Python期末考试编程题
- 晶体管放大电路基础——共射放大电路分析
- 企业数据防泄漏解决方案的介绍!
- YouTube视频设置水印
- java 标点符号_java的标点符号
- python f检验 模型拟合度_python 线性回归分析模型检验标准--拟合优度详解
- 转载和积累系列 - linux 生成KEY的方法与使用