bzoj4555】的更多相关文章

[BZOJ4555]求和(第二类斯特林数,组合数学,NTT) 题面 BZOJ 题解 推推柿子 \[\sum_{i=0}^n\sum_{j=0}^iS(i,j)·j!·2^j\] \[=\sum_{i=0}^n\sum_{j=0}^nS(i,j)·j!·2^j\] \[=\sum_{i=0}^n\sum_{j=0}^nj!·2^j(\frac{1}{j!}\sum_{k=0}^j(-1)^k·C_j^k·(j-k)^i)\] \[=\sum_{j=0}^n2^j\sum_{k=0}^j(-1)^k…
[BZOJ4555]求和(多种解法混合版本) 题面 BZOJ 给定\(n\),求 \[f(n)=\sum_{i=0}^{n}\sum_{j=0}^{i}S(i,j)\times 2^j \times (j!)\] \(n<=100000\),结果对\(998244353\)取模. 其中\(S(i,j)\)是第二类斯特林数,表示将\(i\)个有区别的球放入\(j\)个相同的盒子中,每个盒子非空的方案数. \(S(n,m)=S(n-1,m-1)+S(n-1,m)*m\) 边界条件:\(S(i,0)=…
4555: [Tjoi2016&Heoi2016]求和 Time Limit: 40 Sec  Memory Limit: 128 MBSubmit: 525  Solved: 418[Submit][Status][Discuss] Description 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心. 现在他想计算这样一个函数的值: S(i, j)表示第二类斯特林数,递推公式为: S(i, j) = j ∗ S(i − 1, j) + S(i − 1, j − 1), 1 <…
​ 第一篇博客,请大家多多关照.(鞠躬 BZOJ4555 TJOI2016 HEOI2016 求和 题意: ​ 给定一个正整数\(n\)(\(1\leqq n \leqq100000\)),求: \[ \begin{align*} f(n)=\sum_{i=0}^n\sum_{j=0}^i \begin{Bmatrix}i\\j\end{Bmatrix}\times2^j\times(j!) \end{align*} \] 题解: ​ 第二类斯特林数公式题,题目中很良心地给了我们第二类斯特林数的…
我们计算$f(i)=\sum_{j=1}^i S(i,j)\times 2^j\times (j!)$,容(o)易(e)知(i)道(s)$f(i)$的指数生成函数为$\frac{1}{3-2\times e^x}$,故只需要求多项式逆元再累加即可.复杂度$O(n\log{n})$多项式逆元见picks博客.代码长度和时间都rank1吼评.…
题面 Bzoj Sol 推柿子 因为当\(j>i\)时\(S(i, j)=0\),所以有 \[\sum_{i=0}^{n}\sum_{j=0}^{n}S(i, j)2^j(j!)\] 枚举\(j\) \[\sum_{j=0}^{n}2^j(j!)\sum_{i=0}^{n}S(i, j)\] 带入\(S(i, j)\)的公式 \[\sum_{j=0}^{n}2^j(j!)\sum_{i=0}^{n}\sum_{k=0}^{j}\frac{(-1)^k}{k!}\frac{(j-k)^i}{(j-…
题目大意 求\(f(n)=\sum_{i=0}^n\sum_{j=0}^i2^j\times j!\times S(i,j)\\\) 对\(998244353\)取模 \(n\leq 100000\). 题解 \[ \begin{align} S(n,k)&=\frac1{k!}\sum_{i=0}^k{(-1)}^i\binom{k}{i}{(k-i)}^n\\ &=\frac1{k!}\sum_{i=0}^k{(-1)}^i\frac{k!}{i!(k-i)!}(k-i)^n\\ &a…
//和以前写的fft不太一样,可能是因为要取模?? #include<iostream> #include<cstring> #include<cmath> #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; ,maxn=; ][maxn],pos[maxn]; int qmi(int x,int y){ ; ,x=(ll)x*x%mod)…
S(i,j)=Σ(-1)j-k(1/j!)·C(j,k)·ki=Σ(-1)j-k·ki/k!/(j-k)!.原式=ΣΣ(-1)j-k·ki·2j·j!/k!/(j-k)! (i,j=0~n).可以发现i只在式中出现了一次且与j不相关,如果对每个k求出其剩余部分的答案,各自乘一下即可.而剩余部分显然是一个卷积. #include<bits/stdc++.h> using namespace std; ;} int read() { ,f=;char c=getchar(); ;c=getchar…
题面 Bzoj Luogu 题解 先来颓柿子 $$ \sum_{i=0}^n\sum_{j=0}^iS(i,j)2^jj! \\ =\sum_{j=0}^n2^jj!\sum_{i=0}^nS(i,j) \\ \because S(n, m)=\frac1{m!}\sum_{i=0}^m(-1)^i\binom{m}{i}(m-i)^n=\sum_{i=0}^m\frac{(-1)^i}{i!}\frac{(m-i)^n}{(m-i)!} \\ \therefore=\sum_{j=0}^n2^…
Description 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心. 现在他想计算这样一个函数的值: S(i, j)表示第二类斯特林数,递推公式为: S(i, j) = j ∗ S(i − 1, j) + S(i − 1, j − 1), 1 <= j <= i − 1. 边界条件为:S(i, i) = 1(0 <= i), S(i, 0) = 0(1 <= i) 你能帮帮他吗? Input 输入只有一个正整数 Output 输出f(n).由于结果会很大,输出f(n)…
点此看题面 大致题意: 计算\(\sum_{i=0}^n\sum_{j=0}^iS(i,j)*2^j*(j!)\),其中\(S\)为第二类斯特林数. 推式子 首先让我们来推一波式子: 因为当\(i<j\)时,\(S(i,j)=0\),所以,为了方便式子的化简,我们可以先将第二个\(\sum\)的上限全部改成\(n\),即: \[\sum_{i=0}^n\sum_{j=0}^nS(i,j)*2^j*(j!)\] 这样一来,\(\sum_{j=0}^n2^j*(j!)\)这个式子就与\(i\)无关,…
题目描述 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心. 现在他想计算这样一个函数的值: S(i, j)表示第二类斯特林数,递推公式为: S(i, j) = j ∗ S(i − 1, j) + S(i − 1, j − 1), 1 <= j <= i − 1. 边界条件为:S(i, i) = 1(0 <= i), S(i, 0) = 0(1 <= i) 你能帮帮他吗? 输入 输入只有一个正整数 输出 输出f(n).由于结果会很大,输出f(n)对998244353(7 ×…
题面 传送门 思路 首先,我们发现这个式子中大部分的项都和$j$有关(尤其是后面的$2^j\ast j!$),所以我们更换一下枚举方式,把这道题的枚举方式变成先$j$再$i$ $f(n)=\sum_{j=0}^n2^j\ast j!\sum_{i=0}^nS_i^j$ 第二类斯特林数有一个基于组合意义的公式: $S_i^j=\frac1{j!}\sum_{k=0}^j(-1)^kC_j^k(j-k)^i=\sum_{k=0}^j\frac{(-1)^k(j-k)^i}{k!(j-k)!}$ 把这…
题目 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心. 现在他想计算这样一个函数的值: S(i, j)表示第二类斯特林数,递推公式为: S(i, j) = j ∗ S(i − 1, j) + S(i − 1, j − 1), 1 <= j <= i − 1. 边界条件为:S(i, i) = 1(0 <= i), S(i, 0) = 0(1 <= i) 你能帮帮他吗? 输入格式 输入只有一个正整数 输出格式 输出f(n).由于结果会很大,输出f(n)对998244353(7…
题目大意 给定\(S(n,m)\)表示第二类斯特林数,定义函数\(f(n)\) \[f(n) = \sum_{i=0}^n\sum_{j=0}^iS(i,j)*2^j*(j!)\] 给定正整数\(n,(n\leq 10^5)\),求\(f(n)\) 题解 我们都知道第二类斯特林数的递推公式为 \[S(i,j) = S(i-1,j-1) + j*S(i-1,j),(1 \leq j \leq i-1)\] 且有边界\(S(i,i) = 1(0 \leq i),S(i,0) = 0(1 \leq i…
Description 在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心. 现在他想计算这样一个函数的值: $$f(n)=\sum_{i=0}^n\sum_{j=0}^i S(i,j)\times 2^j\times(j!)$$ $S(i,j)$表示第二类斯特林数,递推公式为:$S(i,j)=j\times S(i-1,j)+S(i-1,j-1),1\leq j\leq i-1$.边界条件为:$S(i,i)=1(0\leq i),S(i,0)=0(1\leq i)$你能帮帮他吗? Inp…
ntt+cdq分治 原来zwh出的cf是斯特林 第二类斯特林数的定义是S(i,j)表示将i个物品分到j个无序集合的方案数,那么这道题中S(i,j)*j!*2^j是指将i个物品分到j个有序集合中并且每个集合可以选或不选的方案数,那么我们改变这个公式,得出 F[i]=∑F[j]*2*C(i,j),j=0-n,意思是第一个集合选n-j个的方案数,那么这个集合有两种情况选或不选,乘上2,再乘上选出元素的方案数.然后展开组合数,得出F[i]=∑F[j]*2*i!/(i-j)!/j!,移项得出F[i]/i!…
题意: 输出f(n)对998244353(7 × 17 × 223 + 1)取模的结果.1 ≤ n ≤ 100000 其中S(i,j)是第二类Stirling数,即有i个球,丢到j个盒子中,要求盒子不为空的方案总数 S(i,j)=S(i-1,j-1)+j*S(i-1,j) (前面一项表示第i个球单独放到一个盒子中,后面一项表示放到前面j个盒子中的某一个) 分析: 首先这个n不是丧心病狂的大,所以感觉可以求i=1时的结果,i=2时的结果,i=3时的结果……,于是可以不看第一个Σ 我们考虑后面的这项…
题目 传送门 解法 我们可以用容斥来求第二类斯特林数 我们知道, 第二类斯特林数\(S(n, k)\)是\(n\)个元素放进\(k\)个无标号的盒子里, 不可以含有空的. 于是我们可以考虑可以含有空的,且盒子有标号, 情况下的数量, 这明显是\(\sum\limits_{j = 0}^{k}{k \choose j}(k-j)^n\) 于是, 根据容斥原理可得:\(S(n, k) = \frac{1}{k!}\sum_{j = 0}^{k}(k-j)^n{k \choose j}(-1)^i\)…
传送门 题意: 求 \[ f(n)=\sum_{i=0}^n\sum_{j=0}^i\begin{Bmatrix} i \\ j \end{Bmatrix}2^jj! \] 思路: 直接将第二类斯特林数展开有: \[ \begin{aligned} f(n)=&\sum_{i=0}^n\sum_{j=0}^n2^j\sum_{k=0}^{j}(-1)^k{j\choose k}(j-k)^{i}\\ =&\sum_{i=0}^n\sum_{j=0}^n2^jj!\sum_{k=0}^j\f…
很有意思.是因为排序那道题才听闻今年tjoi2016的. 题是好题!先把它刷完再去把zhihu look through一遍. bzoj4552 以后看到什么做不出的题,看看能否写二分!!!!写二分!!!!写二分!!!!!!!! 二分答案,大于mid的取一,否则为0,写的时候注意了一些细节,所以效率比较高. 二分的时候边界少打了个等于,下次要注意回来看边界! 膜鏼添动力-- #include<cstdio> #include<cstring> #include<algorit…
(这篇我就不信有网站来扣) 这个暑假打算刷刷题啥的 但是写博客好累啊  堆一起算了 隔一段更新一下.  7月27号之前刷的的就不写了 , 写的累 代码不贴了,可以找我要啊.. 2017.8.27update : 开学了终于搞到了550  可还行 *数据结构 *可持久化线段树/主席树 *bzoj3932 [CQOI2015] 任务查询系统 : 比较裸的主席树,任务查分一下就好了  cqoi真良心 *bzoj4026 dC Loves Number Theory :  数论个头啊,对每个数分解质因数…
题目链接 对于单独一个点,我们枚举它的度数(有多少条边)来计算它的贡献:\[\sum_{i=0}^{n-1}i^kC_{n-1}^i2^{\frac{(n-2)(n-1)}{2}}\] 每个点是一样的,所以\[Ans=n\cdot 2^{\frac{(n-2)(n-1)}{2}}\sum_{i=0}^{n-1}C_{n-1}^ii^k\] 考虑如何计算\(\sum_{i=0}^{n-1}C_{n-1}^ii^k\). 然后...dalao看到\(i^k\)就想起了第二类斯特林数: \(S(n,m…
[题意]给定n,求Σi=0~nΣj=1~i s(i,j)*2^j*j!,n<=10^5. [算法]生成函数+排列组合+多项式求逆 [题解]参考: [BZOJ4555][Tjoi2016&Heoi2016]求和-NTT-多项式求逆 $ans=\sum_{i=0}^{n}\sum_{j=0}^{i}s(i,j)*2^j*j!$ 令$g(n)=\sum_{j=0}^{n}s(n,j)*2^j*j!$ 则ans是Σg(i),只要计算出g(i)的生成函数就可以统计答案. g(n)可以理解为将n个数划分…
(原稿:https://paste.ubuntu.com/p/yJNsn3xPt8/) 快速傅里叶变换,是求两个多项式卷积的算法,其时间复杂度为$O(n\log n)$,优于普通卷积求法,且根据有关证明,快速傅里叶变换是基于变换求卷积的理论最快算法. 关于FFT的介绍,最详细易懂的是<算法导论>上的内容. 其大致介绍与代码在这里:http://www.cnblogs.com/rvalue/p/7351400.html. 1.FFT&NTT模板 #include<cmath>…