Atcoder 题面传送门 & 洛谷题面传送门

简单题,由于这场 arc 的 F 是 jxd 作业而我不会做,所以只好来把这场的 E 水掉了。

我们记 \(f(i)\) 为钦定 \(i\) 个元素出现次数不超过一次,剩余放任自流(cmd_blk 内味)的方案数,再记 \(g(i)\) 为恰好 \(i\) 个元素出现次数不超过一次的方案数,那么有 \(f(i)=\sum\limits_{j=i}^ng(j)\dbinom{j}{i}\),二项式反演一下可得 \(g(i)=\sum\limits_{j=i}^nf(j)\dbinom{j}{i}(-1)^{j-i}\),我们要求的答案即为 \(g(0)=\sum\limits_{i=0}^n(-1)^if(i)\)。

考虑怎样求 \(f(i)\),首先我们需钦定 \(i\) 个元素出现不超过一次,方案数为 \(\dbinom{n}{i}\),我们枚举这 \(i\) 个元素划分入多少个集合,设为 \(j\),根据组合意义,可能会有一些元素出现了一次,那我们就新建一个集合 \(S_0\) 表示出现 \(0\) 次的数的集合,并新建一个 \(0\) 号元素,强制令 \(0\in S_0\),这样等价于将 \(i+1\) 个元素放入 \(j+1\) 个非空集合,其中与 \(0\) 号元素被划分在一个集合的元素就是出现零次的元素,这样可得方案数为 \(\begin{Bmatrix}i+1\\j+1\end{Bmatrix}\)。

接下来考虑剩下 \(n-i\) 个元素,它们可以形成 \(2^{n-i}\) 个集合,由于剩下的元素放任自流,这 \(2^{n-i}\) 个集合每个又有选或者不选两种方案,方案数为 \(2^{2^{n-i}}\),另外剩余 \(n-i\) 个元素每个又可以放入原来 \(j\) 个非空集合中,每个元素是否放入每个集合都有 \(2\) 种选择,因此每个元素可选择的方案数为 \(2^j\),总贡献为 \(2^{j\times(n-i)}\)。

因此 \(f(i)=\sum\limits_{j=0}^i\dbinom{n}{i}\begin{Bmatrix}i+1\\j+1\end{Bmatrix}·2^{2^{n-i}}·2^{j\times(n-i)}\),简单算一下就好了,\(n^2\log n\) 的做法显然,不过似乎过不去?稍微有点脑子的人也能优化到 \(n^2\) 罢……

const int MAXN=3e3;
int n,mod,s[MAXN+5][MAXN+5],c[MAXN+5][MAXN+5];
void init(int n){
s[0][0]=c[0][0]=1;
for(int i=1;i<=n;i++){
c[i][0]=1;
for(int j=1;j<=i;j++){
c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;
s[i][j]=(s[i-1][j-1]+1ll*s[i-1][j]*j)%mod;
}
}
}
int qpow(int x,int e,int mod){
int ret=1;
for(;e;e>>=1,x=1ll*x*x%mod) if(e&1) ret=1ll*ret*x%mod;
return ret;
}
int main(){
scanf("%d%d",&n,&mod);init(n+1);int ans=0;
for(int i=0;i<=n;i++){
int sum=0,pww=qpow(2,qpow(2,n-i,mod-1),mod),bs=qpow(2,n-i,mod),pw=1;
for(int j=0;j<=i;j++,pw=1ll*pw*bs%mod){
sum=(sum+1ll*s[i+1][j+1]*c[n][i]%mod*pww%mod*pw%mod)%mod;
}
if(i&1) ans=(ans-sum+mod)%mod;
else ans=(ans+sum)%mod;
} printf("%d\n",ans);
return 0;
}

Atcoder Regular Contest 096 C - Everything on It(组合数学)的更多相关文章

  1. AtCoder Regular Contest 096

    AtCoder Regular Contest 096 C - Many Medians 题意: 有A,B两种匹萨和三种购买方案,买一个A,买一个B,买半个A和半个B,花费分别为a,b,c. 求买X个 ...

  2. [AtCoder Regular Contest 096 E] Everything on It 解题报告 (第二类斯特林数+容斥原理)

    题目链接:https://arc096.contest.atcoder.jp/tasks/arc096_c Time limit : 4sec / Memory limit : 512MB Score ...

  3. Atcoder Regular Contest 096 D - Sweet Alchemy(贪心+多重背包)

    洛谷题面传送门 & Atcoder 题面传送门 由于再过 1h 就是 NOI 笔试了所以题解写得会略有点简略. 考虑差分,记 \(b_i=c_i-c_{fa_i}\),那么根据题意有 \(b_ ...

  4. AtCoder Regular Contest 096 D - Static Sushi(线性dp)

    Problem Statement "Teishi-zushi", a Japanese restaurant, is a plain restaurant with only o ...

  5. Atcoder Regular Contest 093 D - Dark Horse(组合数学+状压 dp)

    Atcoder 题面传送门 & 洛谷题面传送门 常规题,简单写写罢((( 首先 \(1\) 的位置是什么不重要,我们不妨钦定 \(1\) 号选手最初就处在 \(1\) 号位置,最后答案乘个 \ ...

  6. AtCoder Regular Contest 061

    AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...

  7. AtCoder Regular Contest 094 (ARC094) CDE题解

    原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...

  8. AtCoder Regular Contest 092

    AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了\(2N\)个点,其中\(N\)个是\(A\)类点,\(N\)个是\(B\) ...

  9. AtCoder Regular Contest 093

    AtCoder Regular Contest 093 C - Traveling Plan 题意: 给定n个点,求出删去i号点时,按顺序从起点到一号点走到n号点最后回到起点所走的路程是多少. \(n ...

随机推荐

  1. 原生js-返回顶部

    html部分: <body style="height:2000px"> <div id="div1"> 返回顶部 </div&g ...

  2. Beta阶段第六次会议

    第六次会议 时间:2020.5.22 完成工作 姓名 任务 难度 完成度 xyq 1.编写技术博客 中 90% ltx 1.编写小程序2.添加全局变量之后页面无法加载的bug 中 90% lm(迟到) ...

  3. elasticsearch地理位置查询

    elasticsearch地理位置查询 一.背景 二.geo数据类型 1.geo_point 2.geo_shape 三.此处对geo_point类型实战 1.背景 2.插入地点数据 1.创建索引 2 ...

  4. 问题:两个对象值相同(x.equals(y) == true),但是可能存在hashCode不同吗?

    面试官的考察点 这道题仍然是考察JVM层面的基本知识,面试官认为,基本功扎实,才能写出健壮性和稳定性很高的代码. 涉及到的技术知识 (x.equals(y)==true),这段代码,看起来非常简单,但 ...

  5. CSP-S2021 退役记

    首先大家一起恭喜博主以5pts之差与省三擦肩而过!(nmd爷去年都省三今年成功打铁了) 果然这个菜鸡一年不如一年了 upd:T3死在多测上了,随便一个40+28的人可以吊打我 Day -2: 模拟赛, ...

  6. STM32直流电机启动(一)驱动电路的介绍

    驱动电路 典型的H桥驱动电路如下:要使电机旋转只需导通对角线上的两个三极管即可,如导通Q1,Q4,关闭Q2,Q4即可驱动电机正转:若想电机反向转动,即导通三极管Q2,Q3,关闭Q1,Q4.此时电路图可 ...

  7. Centos 7 编译安装llvm 8.0.0

    参考连接:https://www.cnblogs.com/BinBinStory/p/7499527.html https://blog.csdn.net/llwy1428/article/detai ...

  8. /etc/hosts 详解

    /etc/hosts:主机名查询静态表,是ip地址与域名快速解析的文件.ip地址与主机名之间的映射,包括主机的别名. 通常将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问. 如果没 ...

  9. Python正则表达式使用小记

    最近做Python课实验发现正则表达式和它在py中的的标准库re有很多能多琢磨一下的点,遂决定写成一篇小记,以后想复习能再来看看. 名词 因为不同文献书籍对正则表达式的描述有差别,我在这里列出一下我已 ...

  10. C语言图书管理借阅系统——ncurses库的使用

    一.前言 作为一只大四狗,最近还跟着大二同学修了一门课(当然不是之前没通过啦),课程是高级语言课程设计,高级语言指的是C语言 :),内容是做一个XX管理系统,我选择了图书管理系统,先介绍下我做的系统: ...