博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj2839 集合计数
阅读量:7097 次
发布时间:2019-06-28

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

分析

我的做法和这个博客几乎相同

只是我在处理$2^{2^{n-i}}-1$的时候是先处理前面的再处理后面的

所以前面的$2^{2^{n-i}}$我们只需要从$i=n$开始循环,每次平方即可

代码

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;#define int long longconst int mod = 1e9+7;int pw[1001000],inv[1001000];inline int PW(int x,int p){ int res=1; while(p){ if(p&1)res=res*x%mod; x=x*x%mod; p>>=1; } return res;}inline int c(int n,int m){ return pw[n]*inv[m]%mod*inv[n-m]%mod;}signed main(){ int n,m,i,j,k,Ans=0,now=2; scanf("%lld%lld",&n,&k); inv[0]=pw[0]=1; for(i=1;i<=n;i++)pw[i]=pw[i-1]*i%mod; inv[n]=PW(pw[n],mod-2); for(i=n-1;i>0;i--)inv[i]=inv[i+1]*(i+1)%mod; for(i=n;i>=k;i--){ int wh=((i-k)%2==0?1:-1); Ans=(Ans+mod+wh*c(i,k)*c(n,i)%mod*(now-1+mod)%mod)%mod; now=now*now%mod; } cout<
<

转载于:https://www.cnblogs.com/yzxverygood/p/10339920.html

你可能感兴趣的文章
无法远程链接sqlserver的解决办法
查看>>
WinRT比.NET快了,还是Win8比Win7快
查看>>
SecureCRT 字体 颜色 修改 背景色 键盘映射 Home end delete
查看>>
【内核】Linux 2.6 内存反向映射机制 Reverse Mapping
查看>>
jQuery实现删除option控件下的元素
查看>>
Qt中translate、tr关系 与中文问题
查看>>
反射的两个过滤枚举
查看>>
Android编程之常识 - 混淆
查看>>
源码分析六(org.springframework.util包之Assert类)
查看>>
源码分析八(org.springframework.util包之StringUtils类))
查看>>
#include<> 和 #include""的区别
查看>>
【转】最近很火的 Safe Area 到底是什么
查看>>
java EE 环境配置(JDK + Tomcat + Eclipse for java EE)
查看>>
【转】【Python】Python正则表达式使用指导
查看>>
c#去掉guid中间的横杆
查看>>
Java架构-(十二) 整合spring cloud云架构 - SSO单点登录之OAuth2.0 登出流程(3)
查看>>
ReactNative干货分享——视频播放器App
查看>>
详解 PHP 数组的底层实现:HashTable
查看>>
函数式点滴--partial&curry
查看>>
wokerman启动分析
查看>>