蓝桥杯 算法训练 印章

共有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 次买的印章还没有存在

  1. dp[i - 1][j] * (j * P)
  2. 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;
}

蓝桥杯 算法训练 印章相关推荐

  1. 蓝桥杯算法训练 印章

    蓝桥杯 算法训练 印章 问题描述 ​ 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 ​ 一行两个正整数n和m 输出格式 ​ 一个实数P表示答案,保 ...

  2. 蓝桥杯-算法训练 印章

    试题 算法训练 印章 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 一行两个正整 ...

  3. 蓝桥杯算法训练-印章

    这一题是10月份新加的题,网上也没啥答案,标签为dp动态规划,实际上我觉得不用动态规划也能做,毕竟python是自带了求组合数的函数,下面来看一下吧. 试题 算法训练 印章 资源限制 时间限制:1.0 ...

  4. C语言-蓝桥杯-算法训练 印章

    问题描述 共有 n 种图案的印章,每种图案的出现概率相同.小A买了 m 张印章,求小A集齐 n 种印章的概率. 输入格式 一行两个正整数n和m. 输出格式 一个实数P表示答案,保留4位小数. 样例输入 ...

  5. 蓝桥杯算法训练 印章 C语言实现

    资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 共有n种图案的印章,每种图案的出现概率相同.小A买了m张印章,求小A集齐n种印章的概率. 输入格式 一行两个正整数n和m 输出格式 一 ...

  6. 蓝桥杯 算法训练 幸运的店家

    蓝桥杯 算法训练 幸运的店家 题目描述 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 炫炫开了一家商店,卖的货只有一个,XXX,XXX卖N元钱.有趣的是,世界上只有面值为3的幂的纸 ...

  7. 蓝桥杯 算法训练 Beaver's Calculator

    蓝桥杯 算法训练 Beaver's Calculator 问题描述 从万能词典来的聪明的海狸已经使我们惊讶了一次.他开发了一种新的计算器,他将此命名为"Beaver's Calculator ...

  8. 蓝桥杯算法训练-24点(Python)

    问题描述 24点游戏是一个非常有意思的游戏,很流行,玩法很简单:给你4张牌,每张牌上有数字(其中A代表1,J代表11,Q代表12,K代表13),你可以利用数学中的加.减.乘.除以及括号想办法得到24, ...

  9. 蓝桥杯——算法训练——数字三角形

    蓝桥杯--算法训练--数字三角形 这道题不难,但是比较典型,可以作为动态规划(dp)的入门篇,属于线性dp(LIS,LCS和数字三角形都是此类题型). ------------------------ ...

最新文章

  1. Java实现单链表的逆转置
  2. vim-plug 插件安装
  3. 设置ALV单元格可编辑状态
  4. 队列的C语言实现(通过内核链表)
  5. python len ljust_Python string.ljust方法代码示例
  6. nginx之虚拟主机与请求的分发
  7. java---解析XML文件,通过反射动态将XML内容封装到一个类中
  8. MySQL之终端(Terminal)管理MySQL
  9. python统计中文字数_Python实现统计文本文件字数的方法
  10. mysql怎么生成sql文件_sql如何生成sql文件
  11. 网关中间件研发首选一站式API协作平台:Eolink
  12. Linux网络操作系统及应用教程(项目式)项目四
  13. 数据库----如何将oracle语句转换成mysql语句
  14. Python期末考试编程题
  15. 晶体管放大电路基础——共射放大电路分析
  16. 企业数据防泄漏解决方案的介绍!
  17. YouTube视频设置水印
  18. java 标点符号_java的标点符号
  19. python f检验 模型拟合度_python 线性回归分析模型检验标准--拟合优度详解
  20. 转载和积累系列 - linux 生成KEY的方法与使用

热门文章

  1. 停止win10自动更新
  2. Docker——Dockerfile(构建自己的CentOS镜像和Tomcat镜像)并打包镜像发布上线
  3. OPENCV+VS2008+SQLserver图片存储数据库开发
  4. 删除数组中的指定元素——C++实现
  5. 常用颜色的RGB值及中英文名称对照表
  6. 教你如何做好微信客户管理?做到这3点,效率翻5倍
  7. Oracle存储过程
  8. SkyEye(一种软件模拟的系统开发平台)
  9. 在 PDF 中添加文本的 3 种简单方法
  10. 服务器并发量估算公式和计算方法