【zzulioj 2135】 这里是天堂!
先考虑当前情况可行与否:
如果当a>n或者b>m时是绝对不行的,概率为0;
当a+b<m+n时,k一定等于a+b,否则概率为0;
当a+b==m+n时,k>=a+n,否则概率为0;
接下来就是求一个概率,考虑到猫猫来到的顺序对答案没有影响,所以可直接使用古典概型,也即求可行的方案数除以总方案数。
可行的方案数为从n里面挑选a个的方案乘上从m里面挑选b个的方案数,总方案数为从m+n里面挑选a+b个的方案数。也即C(n,a)*C(m,b)/C(n+m,a+b)。
由于数据很小,所以可以直接用组合数的递推公式求出答案,然后分别作为分子分母约分一下就可以了。
Description
Maple他打代码打累了,于是Maple跑去找猫猫们来拯救自己。
Maple来到了一个空房间里,房间的隔壁是一个有很多只猫猫的房间,在Maple的房间里有一个按钮,每次按一下按钮,就会有且只有一只猫猫从旁边的房间里跑过来找Maple玩,当然当隔壁房间没有猫的时候并不会有猫猫跑过来。
Maple按了几次按钮后发现跑过来的猫猫只有白色和黄色两种毛色,而且如果假设当每次按按钮后旁边房间剩下的猫跑过来的概率都相同,那么Maple就开始想,如果当隔壁房间共有n只白猫和m只黄猫时,当他按了k次按钮后,跑过来的白猫数量和黄猫数量分别为a只和b只的概率是多少。
Input
第一行有一个整数T,代表有T组数据(1<=T<=2000)
每组数据有五个整数n,m,k,a,b,其中0<=n,m,k,a,b<=10
Output
对于每组数据,得到的概率为一个分数A/B(A<=B且AB为互质整数),输出两个整数A、B,用一个空格分开。
Sample Input
Sample Output
HINT
特殊的,概率为0的分数表示法为0/1。
#include <iostream>
#include<string>
#include<cstring>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<queue>
#include<list>
#include<cmath>
#include<algorithm>
#include<cstdio>
#include <bitset>
#include <climits>
#include <time.h>
#include<iomanip>
#define INF 0x3f3f3f3f
using namespace std;
#define ll long long ll C(int num1,int num2)
{
if(num2==) return ; ll res1 = ;
ll res2 = ;
for(int i=;i<=num2;i++)
{
res1*=(num1-i+);
res2*=i;
}
return res1/res2;
} int main()
{
//freopen("D://in.txt","r",stdin);
//freopen("D://out.txt","w",stdout);
int T;
scanf("%d",&T);
while(T--)
{
int n,m,k,a,b;
scanf("%d%d%d%d%d",&n,&m,&k,&a,&b);
if(a>n||b>m)
{
printf("0 1\n");
continue;
}
if(a+b<n+m&&k!=a+b)
{
printf("0 1\n");
continue;
}
if(a+b==n+m&&k<a+b)
{
printf("0 1\n");
continue;
}
ll res1 = C(n,a)*C(m,b);
ll res2 = C(n+m,a+b); ll g = __gcd(res1,res2);
res1/=g;
res2/=g;
printf("%lld %lld\n",res1,res2);
}
return ;
}
【zzulioj 2135】 这里是天堂!的更多相关文章
- Python多线程爬虫爬取电影天堂资源
最近花些时间学习了一下Python,并写了一个多线程的爬虫程序来获取电影天堂上资源的迅雷下载地址,代码已经上传到GitHub上了,需要的同学可以自行下载.刚开始学习python希望可以获得宝贵的意见. ...
- Python爬虫 -- 抓取电影天堂8分以上电影
看了几天的python语法,还是应该写个东西练练手.刚好假期里面看电影,找不到很好的影片,于是有个想法,何不搞个爬虫把电影天堂里面8分以上的电影爬出来.做完花了两三个小时,撸了这么一个程序.反正蛮简单 ...
- ZZULIOJ 1726 迷宫(BFS+小坑)
1726: 迷宫 Time Limit: 1 Sec Memory Limit: 128 MB Submit: 394 Solved: 64 SubmitStatusWeb Board Descr ...
- Poj(2135),MCMF,模板
题目链接:http://poj.org/problem?id=2135 Farm Tour Time Limit: 1000MS Memory Limit: 65536K Total Submis ...
- 51nod1417 天堂里的游戏
---恢复内容开始--- 1417 天堂里的游戏 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 多年后,每当Noder看到吉普赛人,就会想起那个遥 ...
- fzu 2135 数字游戏 【水题】
Problem 2135 数字游戏 Accept: 253 Submit: 392Time Limit: 1000 mSec Memory Limit : 32768 KB Problem ...
- 【动态规划】天堂(Heaven) 解题报告
天堂(heaven) 题目描述 每一个要上天堂的人都要经历一番考验,当然包括小X,小X开始了他进入天堂的奇异之旅.地狱有18层,天堂竟然和地狱一样,也有很多很多层,天堂共有N层.从下到上依次是第1,2 ...
- 网络流(最小费用最大流):POJ 2135 Farm Tour
Farm Tour Time Limit: 1000ms Memory Limit: 65536KB This problem will be judged on PKU. Original ID: ...
- POJ 2135 Farm Tour (最小费用最大流模板)
题目大意: 给你一个n个农场,有m条道路,起点是1号农场,终点是n号农场,现在要求从1走到n,再从n走到1,要求不走重复路径,求最短路径长度. 算法讨论: 最小费用最大流.我们可以这样建模:既然要求不 ...
随机推荐
- 读阮一峰对《javascript语言精粹》的笔记,我有疑问。
<javascript语言精粹>是一本很棒的书籍,其中作者在附录列出了12种他所认为的javascript语言中的糟粕. 我最近开始跟读前端前辈的博客,其中读到了阮一峰的<12种不宜 ...
- github学习(一)
初识github篇. 一.什么是github: GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub. g ...
- .Net3月份开发札记
筛选数据 需求:如果数据库中存在OrderNum相同,且IsDefault不同的记录,那么IsDefault值为0的记录将替换值为1的记录(IsDefault值为1的记录不展示). 由于查出来的数据不 ...
- TokuDB性能测试报告
一 .背景介绍 近年来,TokuDB作为MySQL的大数据(Big Data)存储引擎受到人们的普遍关注.其架构的核心基于一种新的叫做分形树(Fractal Trees)的索引数据结构,该结构是缓存无 ...
- C++primer拾遗(第一章:开始)
本系列将总结正在阅读的C++primer这本书中值得注意又容易忘记的知识点. 1. 当return语句包括一个值时,次返回值的类型必须与函数返回类型相同. 2. 操纵符 endl.写入该符号的效果是: ...
- Spring Boot启动过程(四):Spring Boot内嵌Tomcat启动
之前在Spring Boot启动过程(二)提到过createEmbeddedServletContainer创建了内嵌的Servlet容器,我用的是默认的Tomcat. private void cr ...
- ubuntu Error mounting /dev/sda6 at /media/xxx...
问题原因:可能是windows没有完全关机,详细请看我的另一博文: http://www.cnblogs.com/ediszhao/p/3794459.html 为了学习linux我装了双系统,因为我 ...
- ubuntu svn下载代码出错
ubuntu svn下载代码出错: svn: OPTIONS of 'https://server.domain.local/svn/repo': SSL handshake failed: SSL ...
- Oralce Plsql 中文显示乱码问题无需修改注册表完美解决
此方法在其它版系统也可以解决 win10-64 plsql oracle 11g绿色版客户端 错误现象: 因为oracle用的是绿色版,无法设置注册表,尝试以下方法. 解决方法: 1.在plsql中查 ...
- Bootsrap 的 Carousel
一.简介 Carousel 就是指轮播图,这里 有完整的代码例子.它可以很简单的就构造出来,结构如下: div.carousel.slide[data-ride="carousel" ...