博客
关于我
来自星星的祝福(容斥+排列组合)
阅读量:408 次
发布时间:2019-03-06

本文共 1739 字,大约阅读时间需要 5 分钟。

来自星星的祝福

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 102 Accepted Submission(s): 9

Problem Description

在一个遥远的山区中,流传着一个传说,一个真正的好男人,需要受到来自M个不同星座的女孩子的赞美--“你是个好人”,才会找到真爱。

毫无疑问,yyf就是这样的好男人。他费尽千辛万苦,找到了瞎子算命师ZJiaQ,ZJiaQ告诉他:你这辈会受到n个女孩子的赞美。
那么,请问yyf找到真爱的概率有多少?
假设每个女孩子是M个星座中任一个的概率相等。

Input

第一行一个数T(T<=10),表示数据组数。(T可输入多次)

接下来每组数据中,输入n与m(n<=1000000000000000000(18个零),m<=100)。

Output

输出概率的百分比,并且不需要输出小数点后的数字。

Sample Input

2

1 1
2 2

Sample Output

%100

%50

分析

有两种思路

1.套用容斥定理,我们可以得到如下公式

\[1+\sum_{i=m-1}^{1}(-1)^{m-i}(\frac{i}{m})^nC_m^i\]

带入计算即可

2.令f[i]表示n个人恰好有i个星座的概率,那么f[i]=(m个星座选指定的i个的概率)^n-(i个人选了j个星座的概率)*(j个星座的排列组合
代入计算即可

trick

1.可能出现ans小于0,此时ans变成0

代码

//思路1#include 
using namespace std;#define ll long long#define F(i,a,b) for(int i=a;i<=b;++i)#define R(i,a,b) for(int i=a;i
='0'){x=x*10+ch-48; ch=getchar();}}double f[101];int t;ll n,m;double work(double x,ll n,ll z){ double ret=f[m]/f[z]/f[m-z]; for(;n;n>>=1,x*=x) if(n&1) ret*=x; return ret;}int main(){ f[0]=1; for(ll i=1;i<=100;++i) f[i]=f[i-1]*i; while(~scanf("%d",&t)) { while(t--) { scanf("%lld %lld",&n,&m); if(n
//思路2#include
using namespace std;typedef __int64 ll;long double c[105][105];ll n,m;long double f[105];long double kp(long double x,ll n){ long double ret=1; while(n) { if (n%2==1) ret*=x; n/=2; x*=x; } return ret;}int main(){ c[0][0]=1; for (int i=1;i<=10;i++) { c[i][0]=1; for (int j=1;j<=i;j++) c[i][j]=c[i-1][j-1]+c[i-1][j]; } int t; while(~scanf("%d",&t)) { while(t--) { scanf("%I64d%I64d",&n,&m); if (n

转载地址:http://nkokz.baihongyu.com/

你可能感兴趣的文章
mcrypt加密以及解密过程
查看>>
go等待N个线程完成操作总结
查看>>
ReactJs入门教程-精华版
查看>>
Window环境下安装Redis 并 自启动Redis 及 Redis Desktop Manager
查看>>
Python 之网络式编程
查看>>
MySql5.5安装步骤及MySql_Front视图配置
查看>>
mybatis绑定错误-- Invalid bound statement (not found)
查看>>
python去除字符串中的特殊字符(爬虫存储数据时会遇到不能作为文件名的字符串)
查看>>
SpringCloud微服务(03):Hystrix组件,实现服务熔断
查看>>
云计算之路-阿里云上:0:25~0:40网络存储故障造成网站不能正常访问
查看>>
网站故障公告1:使用阿里云RDS之后一个让人欲哭无泪的下午
查看>>
上周热点回顾(8.12-8.18)
查看>>
蹒跚来迟:新版博客后台上线公测
查看>>
[网站公告]又拍云API故障造成图片无法上传(已恢复)
查看>>
上周热点回顾(6.9-6.15)
查看>>
.NET跨平台之旅:借助ASP.NET 5 Beta5的新特性显示CLR与操作系统信息
查看>>
上周热点回顾(7.27-8.2)
查看>>
上周热点回顾(5.9-5.15)
查看>>
上周热点回顾(1.16-1.22)
查看>>
上周热点回顾(1.23-1.29)
查看>>