codevs 1060
题目大意:
有2n张票,分别有A,B两类,求最后两个人拿到同种票的概率。n<=1250;
想想这题应该是组合啊。。但是到底是组合还是排列。。如果是组合, 概率为:1-两种票都取了n-1张的情况,但是这两种票都取了n-1张的情况怎么算,C(n,n-1)*c(n,n-1)/所有情况,而所有情况又怎么算,对于留下来的两张票只有两种情况,留下来的都是A,留下来的都是B,留下来的有A也有B,那么这么算。。概率总在50%浮动。。不知道哪里有问题,看起来又都是问题。
那么就有了递推的做法。。
思想很简单。假设F[i][j]表示前i个人选了A类票j张的情况,那么有:
(1) 当j=0时,即没有人选A类票,在前i-1个人的基础上,第i个人有两种选择,根据乘法原理,那么前i个人选A的概率 f[i][0]=f[i-1][0]*0.5;
(2) 当j=n时,即前i-1个人已经将A的n张票都买走,或前i-1个人买了此类票的n-1张,根据加法原理,前i个人选n的概率 f[i][n]=f[i-1][n]+f[i-1][n-1]*0.5------但是对于i<n的时候是不可能出现这种情况的呀,那么循环是不是需要在i=n时开始。。
(3) 当j!=0,j!=n时,f[i][j]=f[i-1][j-1]*0.5+f[i-1][j]*0.5-----类似。。LCS的思想有没有?
#include<cstdio>
#include<cstdlib>
using namespace std; double f[3000][3000]; int main()
{
int n;
scanf("%d",&n); n=n/2; f[0][0]=1; for (int i=1;i<=2*n;i++) f[i][0]=f[i-1][0]*0.5; for (int i=1;i<=2*n;i++)
for (int j=1;j<=n;j++)
if (j==n) f[i][j]=f[i-1][j-1]*0.5+f[i-1][j];
else f[i][j]=(f[i-1][j]+f[i-1][j-1])*0.5; printf("%.4lf",f[2*n-2][n]*2);
}
被坑到了n没除以2。。。调了很久。。
codevs 1060的更多相关文章
- [codevs]1060搞笑世界杯
CODEVS上一道钻石题,还是DP的思想,先来题目 1060 搞笑世界杯 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 题目描述 Description ...
- codevs 1060 搞笑运动会 dp
1060 搞笑世界杯 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codevs.cn/problem/1060/ Description ...
- Codevs 1060 搞笑世界杯
1060 搞笑世界杯 时间限制: 1 s空间限制: 128000 KB题目等级 : 钻石 Diamond 题目描述 Description 随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰, ...
- 搞笑世界杯(codevs 1060)
题目描述 Description 随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰,让人心痛不已. 于是有 人组织了一场搞笑世界杯,将这些被淘汰的强队重新组织起来和世界杯一同比赛.你和你的朋 ...
- AC日记——搞笑世界杯 codevs 1060(dp)
题目描述 Description 随着世界杯小组赛的结束,法国,阿根廷等世界强队都纷纷被淘汰,让人心痛不已. 于是有 人组织了一场搞笑世界杯,将这些被淘汰的强队重新组织起来和世界杯一同比赛.你和你的朋 ...
- codevs 3289 花匠
题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可 ...
- codevs 1082 线段树练习 3(区间维护)
codevs 1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
随机推荐
- convert jar to java
(文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) 首先解压一下下载的jar文件,extract jar file , $jar -xvf file.j ...
- HTML 快速入门
最近帮朋友研究作一个网站,虽然对很多人来说这是很简单的事情,但是对我来说却比较复杂!废话不多讲了,看看我找的HTML快速入门,说不定也会对你有帮助! 一. HTML 的基本概念 HTML ( Hyp ...
- onfiguration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/security]
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Una ...
- OpenGL实现三维立方体交互
http://yunpan.cn/cs62JgxTNs98C (提取码:668e)
- error splicing file: file too large解决方法
FAT32格式的usb最大支持4G的文件,拷贝超过4G的文件需要把usb换成NTFS格式.
- 基于cocoStudio的UIListView的可以左右滑动翻页的ListView
//WidgetSlideListView.h class WidgetEaseInListView : public cocos2d::gui::UIListView { public: stati ...
- DP:Coins(POJ 1742)
用硬币换钱 题目大意:就是有面值为A1,A2,A3....的硬币,各有C1,C2,C3...的数量,问在钱数为m的范围内,能换多少钱?(不找零) 这题看名字就知道是完全背包,但是这题又有点不一样, ...
- JavaScript设计模式 - 单例模式
单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点. 一.实现一个标准的单例模式,用一个变量来标志当前是否已经为某个类创建过对象, 如果是,则在下一次获取该对象实例时,直接返回之前创建的对 ...
- 【HTTP协议】响应头中的Content-Length和Transfer-Encoding
来源: http://blog.csdn.net/superhosts/article/details/8737434 http://bbs.csdn.net/topics/390384017 对于h ...
- Linux下的原子操作
linux支持的哪些操作是具有原子特性的?知道这些东西是理解和设计无锁化编程算法的基础. __sync_fetch_and_add系列的命令,发现这个系列命令讲的最好的一篇文章,英文好的同学可以直接去 ...