[容斥原理] BZOJ 2839 集合计数
来源:互联网 发布:招聘网络平面设计师 编辑:程序博客网 时间:2024/05/04 18:29
考虑容斥原理 计算交集大小至少为
首先需要选出
其它
故答案为
#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;const int N=1e6+5;const int P=1e9+7;inline ll Pow(ll a,int b,int P=::P){ int res=1; for (;b;b>>=1,a=1ll*a*a%P) if (b&1) res=1ll*res*a%P; return res;}ll fac[N],inv[N];inline void Pre(int n){ fac[0]=1; for (int i=1;i<=n;i++) fac[i]=fac[i-1]*i%P; inv[1]=1; for (int i=2;i<=n;i++) inv[i]=inv[P%i]*(P-P/i)%P; inv[0]=1; for (int i=1;i<=n;i++) inv[i]=inv[i]*inv[i-1]%P;}inline ll C(int n,int m){ return fac[n]*inv[m]%P*inv[n-m]%P;}int main(){ ll Ans=0,tmp,n,K; freopen("t.in","r",stdin); freopen("t.out","w",stdout); scanf("%lld%lld",&n,&K); Pre(n); for (int i=K;i<=n;i++){ tmp=C(i,K)*C(n,i)%P*((Pow(2,Pow(2,n-i,P-1))+P-1)%P)%P; if ((i-K)&1) Ans+=P-tmp; else Ans+=tmp; } printf("%lld\n",Ans%P); return 0;}
0 0
- BZOJ 2839 集合计数 容斥原理
- [容斥原理] BZOJ 2839 集合计数
- [容斥原理]BZOJ 2839: 集合计数
- bzoj 2839: 集合计数 (容斥原理)
- bzoj 2839: 集合计数 排列组合+容斥原理
- BZOJ 2839: 集合计数 容斥原理 组合数学
- 容斥原理 集合计数
- 【BZOJ2839】集合计数,容斥原理
- bzoj2839集合计数 容斥原理
- BZOJ 2839 浅谈容斥原理组合计数及欧拉定理优化二维幂指数
- [BZOJ2839]集合计数(容斥原理+组合数学)
- bzoj2839 集合计数 (容斥原理+组合数)
- bzoj 2839 集合计数
- BZOJ 2839 集合计数
- bzoj 2839 集合计数
- [DP][容斥原理] BZOJ 4762: 最小集合
- bzoj 3622 容斥原理
- BZOJ 2005 容斥原理
- C++
- 51单片机之声双色点阵驱动
- RESTful
- 设计模式——代理模式
- 263. Ugly Number
- [容斥原理] BZOJ 2839 集合计数
- OC中与copy有关的那些事 一 (copy与声明NSString属性 : strong/copy 的关系)
- 广告行业eCPM概念
- linux shell 获取当前正在执行脚本的绝对路径
- linux下多线程之生成者与消费者模型(互斥,读写锁,条件变量)
- onCreateContextMenu用法
- 接口三
- swift3.0 基本数据类型
- 【老戴说镜头】怎样才算一颗好的镜头