pku1322 Chocolate
题目链接:http://acm.pku.edu.cn/JudgeOnline/problem?id=1322
题意简述: ACM牌巧克力共有C中不同颜色的品种。一天,Sandy进行了如下游戏:从一个装满巧克力的袋子(袋中的不同颜色的巧克力是同样多的,且假定巧克力数目足够多),一个一个拿出巧克力放于桌上,如拿出的巧克力与桌上某一个巧克力颜色相同,那么Sandy则将两块全部吃掉。现要求从袋中拿出了N块巧克力后,桌面上还剩余M块巧克力的概率。
解题思路:设dp[n][m]表示取了n块后,剩余m块巧克力的概率。则有:
dp[n][m]=0(n+m为奇数时);dp[n][m]=dp[n-1][m-1]*(c-m+1)/c+dp[n-1][m+1]*(m+1)/c。
方程是出来了,但是看看数据范围,表示肯定不能直接进行动态规划。于是看了一下别人的方法,发现dp[n][m]这个值是收敛的,也就是说当n足够大是dp[n][m]的值变化不大了,于是把自己的加个条件就过了,具体看代码的注释。(后面这部分看别人的,不会证明,数学太弱了)
代码:
#include<stdio.h> #include<string.h> using namespace std; double a[1002][105]; int main() { int c,n,m; while(scanf("%d",&c)&&c) { scanf("%d%d",&n,&m); memset(a,0,sizeof(a)); if(m>c||m>n) { printf("0.000/n"); continue; } if(n>1000) { if(n&1) n=1001; //由于dp[n][m]的值跟n的奇偶性有关,判断一下 else n=1000; } a[0][0]=1.0; for(int i=1;i<=n;i++) { a[i][0]=a[i-1][1]/(c+0.0); a[i][c]=a[i-1][c-1]/(c+0.0); for(int j=1;j<=c;j++) a[i][j]=a[i-1][j+1]*(j+1)/(c+0.0)+a[i-1][j-1]*(c-j+1)/(c+0.0); } printf("%.3f/n",a[n][m]); } return 0; }
pku1322 Chocolate相关推荐
- 2015: [Usaco2010 Feb]Chocolate Giving
2015: [Usaco2010 Feb]Chocolate Giving Time Limit: 10 Sec Memory Limit: 162 MB Submit: 269 Solved: ...
- HDU 2282 Chocolate (最小费用最大流)
HDU 2282 Chocolate (最小费用最大流) #include <iostream> #include <cstdio> #include <queue&g ...
- 14行代码AC_Break the Chocolate HDU-4112(数学推导+解析)
励志用少的代码做高效表达 Problem describe Benjamin is going to host a party for his big promotion coming up. Eve ...
- 【.NET 遇上 GraphQL】使用 Hot Chocolate 构建 GraphQL 服务
Hot Chocolate 是 .NET 平台下的一个开源组件库, 您可以使用它创建 GraphQL 服务, 它消除了构建成熟的 GraphQL 服务的复杂性, Hot Chocolate 可以连接任 ...
- 使用Hot Chocolate创建ASP.NET Core GraphQL服务
GraphQL介绍 GraphQL是一个用于API的查询语言,是一个使用基于类型系统来执行查询的服务端运行时.GraphQL对你的API中的数据提供了一套易于理解的完整描述,使得客户端能够准确地获得它 ...
- [指数型生成函数专练]chocolate,红色病毒问题,排列组合,字串数
文章目录 T1:chocolate 题目 题解 code T2:"红色病毒"问题 题目 题解 code T3:排列组合 题目 题解 code T4:字串数 题解 code T1:c ...
- 【记忆化搜索】【dfs】【递归】Chocolate
Chocolate 题目大意: 有一块巧克力(每一个单位有一定的美味值),判断是否可以把他分为k块美味值相等的小巧克力 原题: 题目描述 Charlie 有一块巧克力. 这块巧克力是矩形的,有 n 行 ...
- Jzzhu and Chocolate(CF-449A)
Problem Description Jzzhu has a big rectangular chocolate bar that consists of n × m unit squares. H ...
- Codeforces Round #257 (Div. 2) C. Jzzhu and Chocolate
C. Jzzhu and Chocolate time limit per test 1 second memory limit per test 256 megabytes input standa ...
最新文章
- 人工智能语音技术支持“多情感程度”调节,细腻演绎“人声”
- 基于OpenCV的显著图绘制
- python网络爬虫的基本步骤-Python网络爬虫与信息提取(一)(入门篇)
- composer不成功的原因
- 外星人装深度linux,17xR4深度拆机教程、加装MSATA固态硬盘及评测
- tia v15 添加项目_硬技能,TIA 博途软件界面的介绍
- Spring 框架 AOP 的总结
- UVA10140 Prime Distance
- 一些osu的皮肤下载
- 记录一次使用Aliyun OSS 存图片
- POI导出excel,按照父子节点进行分级显示
- homelede软路由设置方法_二级lede软路由设置方法,lede设置软路由网卡
- 资本的游戏-笔记(一)
- 计算机cat的应用,计算机辅助系统
- STM32 汇编程序——串口输出 Hello world
- python调用打印机参考例子_Python调用打印机参考例子
- 股市----别人的经验
- Zabbix探索:关于网络设备SysUpTime监控的问题
- python爬虫之request.get()参数
- ModuleNotFoundError: No module named ‘keras_applications.resnet_v2‘解决方式