Codeforces 711E. ZS and The Birthday Paradox
2016-08-31 13:14
423 查看
题目链接
题目大意
假设一年有2^n天,问k个小朋友中有两个小朋友生日相同的概率。
假设该概率约分后为 p / q ,输出p , q对1000003取模的解。
n , k <= 10^18。
解题分析
若k > 2^n 则答案为1 / 1 , 否则答案为 1 - A(2^n,k) / (2^n)^k ,
可以发现分子与分母的gcd必定为(2^i)*(2^n)。
因为A(2^n,k)=(2^n)(2^n-1)(2^n-2)(2^n-3)(2^n-4)…..=(2^n)(2^n-1)(2*(2^(n-1)-1))(2^n-3)(2*2*(2^(n-2)-1)
也就是说只和减掉的数有关!!!
然后这里去求i发现i就是1到k-1中2的次数。
然后就是k-1不停除2相加就是了。
然后gcd的逆元就是quickpowmod(quickpowmod(2,num,mod),mod-2,mod)
然后就GG了
题目大意
假设一年有2^n天,问k个小朋友中有两个小朋友生日相同的概率。
假设该概率约分后为 p / q ,输出p , q对1000003取模的解。
n , k <= 10^18。
解题分析
若k > 2^n 则答案为1 / 1 , 否则答案为 1 - A(2^n,k) / (2^n)^k ,
可以发现分子与分母的gcd必定为(2^i)*(2^n)。
因为A(2^n,k)=(2^n)(2^n-1)(2^n-2)(2^n-3)(2^n-4)…..=(2^n)(2^n-1)(2*(2^(n-1)-1))(2^n-3)(2*2*(2^(n-2)-1)
也就是说只和减掉的数有关!!!
然后这里去求i发现i就是1到k-1中2的次数。
然后就是k-1不停除2相加就是了。
然后gcd的逆元就是quickpowmod(quickpowmod(2,num,mod),mod-2,mod)
然后就GG了
#include<bits/stdc++.h> using namespace std; typedef long long LL; #define mod 1000003 const int maxn=200005; LL quickpowmod(LL x,LL y,LL mo) { LL ret = 1; while(y){ if(y&1) ret = ret*x%mo; x = x*x%mo; y >>= 1; } return ret; } LL n,k,num; int main() { scanf("%I64d%I64d",&n,&k); if (n<=60 && k>(1ll<<n)){ printf("1 1\n"); return 0; } num=0; LL t=k-1; while(t){ t/=2; num+=t; } t=quickpowmod(2,n,mod); LL ans=1; LL ans1=1; for(LL i=1;i<=k-1;i++){ ans=ans*(--t)%mod; if(ans==0)break; } ans1=quickpowmod(quickpowmod(2,n,mod),k-1,mod); LL inv=quickpowmod(quickpowmod(2,num,mod),mod-2,mod); ans1=ans1*inv%mod; ans=ans*inv%mod; ans=(ans1-ans+mod)%mod; printf("%I64d %I64d\n",ans,ans1); return 0; }
相关文章推荐
- CodeForces 24C Sequence of points (几何)
- Codeforces 347C Alice and Bob
- CodeForces 591B
- Codeforces 347C - Alice and Bob
- CodeForces - 622E dfs+贪心
- [CodeForces-721E]Road to Home
- CodeForces 245D Restoring Table
- Codeforces 460C Present (贪心 + 二分)
- 【CodeForces】[621A]Wet Shark and Odd and Even
- 【CodeForces】444A - DZY Loves Physics(图论规律)
- [线段树] Codeforces 794F Round #414 F. Leha and security system
- Codeforces 284E Coin Troubles【思维+拓扑排序+完全背包】好题!
- CodeForces 401C
- codeforces 414B B. Mashmokh and ACM(dp)
- codeforces 354 div2 C Vasya and String 前缀和
- CodeForces 732B Cormen — The Best Friend Of a Man
- Codeforces 104C Cthulhu dfs暴力 || 点双连通缩点
- CodeForces 867A Between the Offices
- Codeforces 413C Jeopardy!(贪心)
- CodeForces 425E Sereja and Sets