自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zxyoi_dreamer的博客(不定期诈尸)

退役OIer 现役ACMer 555555我怎么这么菜QAQ

  • 博客(76)
  • 收藏
  • 关注

原创 【51nod1312】最大异或和(线性基)(高斯消元)(贪心)

传送门题解:首先塞到线性基上面。显然线性基外面的数全部可以变成最大异或和。线性基里面的,先高斯消元,然后将最大的基变成最大异或和。剩下的基显然最好的结果就是直接和最大异或和xor起来。直接贪心即可。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs const...

2019-08-30 21:37:03 172

原创 【CF 338D】Fox and Perfect Sets(线性基)(数位DP)

传送门题解:显然所有合法集合可以直接用线性基表示出来。考虑怎么唯一表示,显然是将线性基高斯消元搞成下三角矩阵。当这一位上有基的时候,不允许线性基中其他位置出现这一位上的111,否则上面的位置可以任意选择。从高位向低位数位dp,设状态f[i][j][0/1]f[i][j][0/1]f[i][j][0/1],表示处理了前iii个高位,线性基中已经有jjj个元素,当前的最大xor和是否卡kk...

2019-08-30 21:16:36 156

原创 【CQOI2014】和谐矩阵(xor方程组上高斯消元)

传送门题解:直接对1600个变量列xor方程组+普普通通的常数优化就能过了。但是我们还是希望有一个复杂度看起来靠谱的做法。考虑第一行确定之后,我们可以直接递推出下面所有格子的情况。用第一行的变量的xor和来表示下面所有格子,对最后一行建立方程组,高斯消元。注意有解一定会有自由元,设置成1之后递推即可,没有自由元意味着所有格子必须为全0,自然无解。代码:#include<b...

2019-08-30 20:27:53 173

原创 【LOJ547】「LibreOJ β Round #7」匹配字符串(常系数齐次线性递推)(Lucas定理)

传送门题解:首先我们知道这玩意可以直接DP。设fif_ifi​表示长度为iii的串,以000结尾的合法方案数,则有转移fn=∑i=n−mn−1fif_n=\sum_{i=n-m}^{n-1}f_ifn​=i=n−m∑n−1​fi​ 很显然可以直接用线性递推搞,多项式取模的时候由于前面的系数全部都是111,可以记录一下前面的和优化到O(m)O(m)O(m)。上面的做法只能在mmm较小的时候...

2019-08-30 19:31:22 517

原创 【LOJ2463】「2018 集训队互测 Day 1」完美的旅行(线代黑科技)(牛顿恒等式)

传送门题解:这道题的原理部分请看这篇题解:https://blog.csdn.net/zxyoi_dreamer/article/details/100160980上面这篇题解里面的记号全部沿用。这里主要讲一下这道题怎么用线代黑科技优化常数。如果一个数列是线性递推数列,设其OGF为G(x)G(x)G(x),则存在两个有限多项式P(x),Q(x)P(x),Q(x)P(x),Q(x),使得...

2019-08-30 16:54:53 395

原创 【LOJ2463】「2018 集训队互测 Day 1」完美的旅行(BM算法)(多项式求逆)(FMT)

传送门题解:显然我们的想法是对所有集合算出它的超集的答案然后FMT回去。发现转移是一个矩阵乘法的形式,显然有线性递推式。直接用BM求出线性递推式可以算出走单次kkk步,愉悦值为iii的方案数。然后FMT得到单次走kkk步,愉悦值为iii的超集的方案数,记为g(i,k)g(i,k)g(i,k),设其OGF为Gi(x)G_i(x)Gi​(x)。现在需要求总共走kkk步,愉悦值为iii的超...

2019-08-30 16:18:58 333

原创 【BZOJ2655】calc(DP)(拉格朗日插值)

传送门题解:钦定大小关系,算出来后乘上阶乘就是答案。显然有DP:f(A,n)=Af(A−1,n−1)+f(A−1,n)f(A,n)=Af(A-1,n-1)+f(A-1,n)f(A,n)=Af(A−1,n−1)+f(A−1,n)求前缀和会将次数+1,每次n+1的时候会乘上一个A,次数会+1,f(A,n)f(A,n)f(A,n)是一个关于AAA的2n2n2n次多项式。暴力计算前面的项,然后...

2019-08-30 10:43:24 150

原创 【51nod1965】奇怪的式子(min_25筛)

传送门题解:咕咕咕代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout;using pll=std::pair<ll,ll>;#define fi first#define ...

2019-08-30 09:05:56 139

原创 【8.29测试爆零记录】

扯淡:最大的感受就是最近做数学题做傻了。L一本正经地跟我说我不是做傻了,是形成了思维定势。我保持沉默。。。写这篇博客的时候突然想到,这俩不一个意思吗???Excuse me???但是最近该写的数学题还没写完,可能还要咕咕咕一会。(事实证明在刷专题期间不适合考试,可能到了题目泛做的时候会好一点。):由于昨天被L拉去验了一眼题(防止考到原题)(虽然一道都没记住),感觉T1应该是最可做...

2019-08-29 21:08:12 137

原创 【校内模拟】魅力(高维卷积)(循环卷积)(NTT)(三进制FWT)(数位DP)

题解:一不小心又吊了标算标算的三进制FWT用的是递归实现,复域用的是a+b3a+b\sqrt 3a+b3​而不是a+bω3a+b\omega_3a+bω3​,常数极大,跑了我用时的两倍不止首先推出数位DP的式子,有点麻烦不想写了。考虑题目的两个限制。第一个,集合中的数的出现次数必须是三的倍数,多维三进制循环卷积,好的三进制FWT。第二份,结果必须是kkk的倍数,kkk进制循环卷积,由于...

2019-08-29 20:29:03 579

原创 【校内模拟】树(树哈希)(状压DP)

题解:和ZJOI2018线图里面的处理方式一样。找到重心,以重心为根。然后对于每一个子树哈希一下。接下来就很简单了,我们直接枚举A树里面的每一个点和B树的根匹配,然后状压DP算一下孩子的匹配方案数。复杂度有一个显然的上界是O(nm32m2)O(nm^32^{\frac{m}{2}})O(nm322m​),但是里面有两个mmm和2m22^{\frac{m}{2}}22m​是远远到不了的,目前...

2019-08-29 20:10:49 167

原创 【51nod1847】奇怪的数学题(杜教筛)(min_25筛)(第二类斯特林数)

传送门题解:神题。首先设h(gcd(i,j))=sgcd(i,j)h(gcd(i,j))=sgcd(i,j)h(gcd(i,j))=sgcd(i,j),则h(n)=nmnp(n)h(n)=\frac{n}{mnp(n)}h(n)=mnp(n)n​则我们要求Ans=∑i=1n∑j=1nh(gcd(i,j))k=∑d=1nh(d)k∑i=1⌊nd⌋∑j=1⌊nd⌋[gcd(i,j)]=1=∑...

2019-08-28 20:12:26 180

原创 【FJWC2018】最大真因数(min_25筛)

传送门题解:考虑min_25筛法实际执行的第一步,筛质数点值之和,这一步中减去合数的贡献总是在用它的最小质因子。而一个合数的最大真因子实际上就是它本身除掉它的最小质因子。直接在min_25执行过程中统计一下答案就行了。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs...

2019-08-28 15:45:27 269

原创 【JXOI2018】游戏(埃氏筛)(组合数学)

传送门题解:我们发现,对于[l,r][l,r][l,r]内,没有除自己以外的因子在[l,r][l,r][l,r]是我们必须筛掉的,而且完成任务当且仅当把具有上述特征的数筛完。直接埃氏筛统计有多少个数,设为ctctct,然后组合数算一下。考虑答案为iii的方案有多少种,我们得到:∑i=ctni⋅(i−1ct−1)⋅ct!⋅(n−ct)!\sum_{i=ct}^ni\cdot {i-1\c...

2019-08-28 15:23:11 131

原创 【HNOI2019】鱼(极角序扫描线)

传送门题解:发现我们可以枚举AD,然后对于所有B,C,合法的AD应该是在一条直线上的,这个直线可以搞出来,对于所有的AD,合法的BC中点应该在AD线段上,这个可以lower_bound+upper_bound随便算出来。然后考虑怎么算EF,直接极角序扫描线,按照极角序枚举A,统计在合法角度范围内的距离D一定值的有多少个,可以直接用哈希表。代码:#include<bits/std...

2019-08-28 14:51:43 214

原创 【ZJOI2019】Minimax(动态DP)(链分治)

传送门题解:当时做ZJOI的时候Day1就这一道不会,只写了70pts暴力(当时连DDP都不知道是什么东西)。首先和ZJOI2019 D1T1一样的转化思想,并不好计算稳定度为kkk的集合,考虑计算稳定度不超过kkk的。首先我们知道初始状态有一条唯一的答案链。链上任何一个节点的权值改变都会导致答案改变,并且链上所有点的权值在初始情况下都等于答案。对于深度奇偶性分类讨论,然后补集转化就...

2019-08-28 11:35:16 219

原创 【CQOI2017】小Q的表格(莫比乌斯反演)(分块)

传送门题解:首先很显然地,我们发现题目的限制可以转化为f(a,b)ab=f(b,a)ab=f(a,a+b)a(a+b)\frac{f(a,b)}{ab}=\frac{f(b,a)}{ab}=\frac{f(a,a+b)}{a(a+b)}abf(a,b)​=abf(b,a)​=a(a+b)f(a,a+b)​进而发现,对于任意a,ba,ba,b,我们可以得到g(gcd(a,b))=f(a,b)...

2019-08-27 22:04:33 124

原创 【BZOJ4305】数列的GCD(莫比乌斯反演)(组合数学)

传送门题解:我们考虑算出F[d]F[d]F[d]表示所有d∣gcdd\mid gcdd∣gcd的方案之和,然后莫比乌斯反演就行了。但是实际上我们发现从大往小算可以直接用减法来容斥,就不用莫比乌斯反演了。代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_cha...

2019-08-27 20:49:22 191

原创 【BZOJ2671】Calc(莫比乌斯反演)(数论分块)

传送门题解:十分扯淡的莫反题。我们要求的是这个东西:Ans=∑i=1n∑j=1i−1[(i+j)∣ij]Ans=\sum_{i=1}^n\sum_{j=1}^{i-1}[(i+j)\mid ij]Ans=i=1∑n​j=1∑i−1​[(i+j)∣ij]直接骚推就行了。Ans=∑d=1n∑i=1n∑j=1i−1[gcd(i,j)=d][(i+j)∣ij]=∑d=1n∑i=1⌊nd⌋∑j...

2019-08-27 19:46:11 148

原创 【JZOJ4872】太阳神(莫比乌斯反演)(数论分块)

题意:给定一个nnn,求有多少对(a,b)(a,b)(a,b)满足a≤n,b≤n,lcm(a,b)&gt;na≤n,b≤n,lcm(a,b)&gt;na≤n,b≤n,lcm(a,b)>n,n≤1e10n\leq 1e10n≤1e10题解:首先转化一下,计算a≤n,b≤n,lcm(a,b)≤na\leq n,b\leq n,lcm(a,b)\leq na≤n,b≤n,l...

2019-08-27 17:18:25 213

原创 【2017集训队作业】小c的岛屿(斯特林反演)(期望)(高斯消元)

题面:有 nnn 座岛屿,初始时没有边。每座岛屿都有一个概率值 pip_ipi​ 和一个友好列表 AiA_iAi​。小 c 站在 111 号岛屿,依次执行以下操作:设现在在岛屿 xxx,有 pxp_xpx​ 的概率产生一条图中不存在的随机无向边,不会产生自环。如果此时所有岛屿仍未连通,他会在当前点的友好列表中,随机选择一个,走到那座岛屿上,并把不满意度 +1+1+1,然后重复第 111 ...

2019-08-27 14:55:32 382

原创 【NOIP2018】【洛谷P5024】保卫王国(动态DP)(全局平衡二叉树)

传送门闲的蛋疼用全局平衡二叉树写了一遍这道题,跑得飞快。动态DP基础题,并不想写题解。代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_char#define cs constnamespace IO{ inline char get_char(){...

2019-08-26 20:41:48 254

原创 【BZOJ3451】【Tyvj1953】Normal(点分治)(NTT)

传送门题解:很妙的思路,考虑每个点对的贡献,实际上就是考虑其中一个点作为一个分治中心的时候另一个点是否能够产生贡献。要求就是所有它们路径上的所有点都还没有被选,概率为1dis(i,j)+1\frac{1}{dis(i,j)+1}dis(i,j)+11​,直接上点分治算每种距离出现了多少次就行了,发现合并是一个卷积,直接用NTT就行了。代码:#include<bits/stdc++...

2019-08-26 19:20:53 185

原创 【TC SRM 670】【TC 13891】【BZOJ4671】Gxor(斯特林反演)(线性基)(高斯消元)

传送门题解:枚举一下连通块,不同块之间不允许连边,同块之间允许任意连边。然后高斯消元算一下方案数。我们需要算的是111个连通块的方案数。考虑一个实际连通块数量为ttt的图,它会在我们枚举kkk个连通块的时候被算St,kS_{t,k}St,k​次。考虑∑i(−1)i−1Sn,i(i−1)!=[n=1]\sum_{i}(-1)^{i-1}S_{n,i}(i-1)!=[n=1]∑i​(−1...

2019-08-23 21:43:59 245

原创 【8.22测试爆零记】

T1:wykres线段树分治+可回退化并查集。需要比较精细的实现,不然会被卡常。下面给出一个在时限的1/5内通过所有点的代码。代码:#include<bits/stdc++.h>#define ll long long#define re register#define gc get_char#define cs constnamespace IO{ inlin...

2019-08-23 19:57:33 212

原创 【CodeChef-EASYEX】Easy exam(斯特林数)(FFT)

传送门题解:设xi,jx_{i,j}xi,j​表示第iii次是否扔出了jjj,则我们要求的就是∏i=1L(∑j=1nxj,i)F\prod_{i=1}^L(\sum_{j=1}^nx_{j,i})^Fi=1∏L​(j=1∑n​xj,i​)F的期望。考虑这个式子完全展开后的某一项,假设有zzz个xj,ix_{j,i}xj,i​,则系数为SF,zz!S_{F,z}z!SF,z​z!,所有的有...

2019-08-21 21:46:59 297

原创 【CodeChef-SUMCUBE】Sum of Cubes(第二类斯特林数)(三元环计数)

传送门题解:首先还是利用斯特林数转化一下组合意义,考虑1−k1-k1−k条边同时出现在图里的情况。由于kkk很小,对边分布的不同情况分类讨论一下就行了。为了算各个情况的边的分布需要容斥,在k=3k=3k=3的时候需要三元环计数。代码:#include<bits/stdc++.h>#define ll long long#define re register#def...

2019-08-21 18:00:46 241

原创 【TC SRM 686 Div1】【TC 14199】CyclesNumber(斯特林数)

传送门题解:首先我们可以直接知道答案为∑sn,k⋅km\sum{s_{n,k}\cdot k^m}∑sn,k​⋅km用数学方法处理稍微麻烦了一点,考虑其组合意义。设xix_ixi​表示循环iii是否出现,则一个置换的权值为(∑xi)m(\sum x_i)^m(∑xi​)m展开,考虑其中由某kkk个项组成的项的系数,相当于是mmm个物品划分到kkk个带标号集合中的方案数,则系数为Sm,k...

2019-08-21 14:54:39 140

原创 【CF961G】Partitions(第二类斯特林数)(线性筛)

传送门题解:考虑这个划分的组合意义。实际上就是每个数对同组的数的最终权值都有自己www的贡献。考虑一个数对所有数的贡献。对自己的贡献的系数显然是Sn,kS_{n,k}Sn,k​,对其他数的贡献显然是(n−1)⋅Sn−1,k(n-1)\cdot S_{n-1,k}(n−1)⋅Sn−1,k​用第二类斯特林数通项公式求一下就行了。代码:#include<bits/stdc++....

2019-08-21 11:15:55 202

原创 【CF960G】Bandit Blues(斯特林数)(NTT)

传送门补档计划无题解。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout;cs int mod=998244353;inline int add(int a,int b){a+=b-mo...

2019-08-21 10:29:27 159

原创 【HackerRank-costly-graphs】【BZOJ5093】图的价值(第二类斯特林数)(NTT)

传送门题解:首先我们的需要一个答案的表达式。考虑111号点的度数,该度数能够出现在多少种图中,以及nnn个点等价。以下用mmm暂代原题意中的kkk。我们可以得到答案的表达式:Ans=n⋅2(n−12)∑i=0n−1(n−1i)imAns=n\cdot 2^{n-1\choose 2}\sum_{i=0}^{n-1}{n-1\choose i}i^mAns=n⋅2(2n−1​)i=0∑...

2019-08-16 21:03:02 173

原创 【集训队2011】【洛谷P4827】【HDU4625】Crash 的文明世界/JZPTREE(第二类斯特林数)(树形DP)

HDU传送门题解:求的东西形式非常简单:S(i)=∑j=1ndis(i,j)kS(i)=\sum_{j=1}^ndis(i,j)^kS(i)=j=1∑n​dis(i,j)k首先这玩意可以非常简单地二项式展开,单次转移就被卡到O(k2)O(k^2)O(k2)了。考虑利用斯特林数将普通幂转到下降幂:xn=∑i=0nSn,ixi‾x^n=\sum_{i=0}^{n}S_{n,i}x^{\un...

2019-08-16 19:53:59 125

原创 【TJOI/HEOI2016】【洛谷P4901】【LOJ2058】【BZOJ4555】求和(生成函数)

传送门题解:现在拿到洛谷rank1,BZOJrank1,LOJrank1。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constcs int mod=998244353;inline int add(int a,int b){return (a+=b)&g...

2019-08-16 15:20:52 123

原创 【CF932E】Team Work(斯特林数)

传送门题解:首先我们要求的是这个式子:Ans=∑i=1n(ni)ikAns=\sum_{i=1}^n{n\choose i}i^kAns=i=1∑n​(in​)ik然而nnn贼大,并不能承受,考虑从kkk下手,由第二类斯特林数,我们知道:Ans=∑i=1n(ni)ik=∑i=1n(ni)∑j=1k(ij)j!Sk,j=∑j=1kSk,j∑i=1nn!(n−i)!i−j!=∑j=1kSk...

2019-08-15 20:50:35 155

原创 【模板】【洛谷P5393】下降幂多项式转普通多项式(拉格朗日插值)(NTT)

传送门题解:首先对于下降幂多项式,其系数表达的点值EGF只需要乘上一个exe^xex。于是我们得到了若干个点值,直接份治拉格朗日插值即可。代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout...

2019-08-15 19:58:36 255

原创 【模板】【洛谷P5383】普通多项式转下降幂多项式(NTT)(多项式多点求值)

传送门题解:似乎并没有什么比较好的科技能够O(nlog⁡n)O(n\log n)O(nlogn)求这个东西。那O(nlog⁡2n)O(n\log^2 n)O(nlog2n)也不算太坏。我们知道如果得到了多项式的点值EGF,可以直接乘上一个e−xe^{-x}e−x得到下降幂形式的系数表达。所以直接套一个多点求值就行了,复杂度瓶颈也就在这里。代码:#include<bits/s...

2019-08-15 19:17:11 251

原创 【LOJ6363】「地底蔷薇」(拉格朗日反演)(多项式全家桶)

传送门题解:代码:#include<bits/stdc++.h>#define ll long long#define re register#define cs constusing std::cerr;using std::cout;cs int mod=998244353;inline int add(int a,int b){return (a+=b...

2019-08-15 18:07:02 401

原创 【BZOJ3684】大朋友和多叉树(拉格朗日反演)

传送门题解:很显然地,我们考虑生成函数,由于必须儿子不能为空,所以显然000个点的方案数我们需要设置为000。设F(x)F(x)F(x)为合法的树的生成函数,则有:F(x)=x+∑i∈DFi(x)F(x)=x+\sum_{i\in D}F^i(x)F(x)=x+i∈D∑​Fi(x)设G(x)=1−∑i∈DxiG(x)=1-\sum_{i\in D}x^iG(x)=1−∑i∈D​xi,则显...

2019-08-14 19:20:47 222

原创 【模板】【洛谷P5394】下降幂多项式乘法(NTT)

传送门题解:对于下降幂多项式f(x)f(x)f(x)考虑其点值生成函数:F(x)=∑i=0∞f(i)i!⋅xiF(x)=\sum_{i=0}^\infty\frac{f(i)}{i!}\cdot x^iF(x)=i=0∑∞​i!f(i)​⋅xi考虑一个下降幂单项式xn‾x^{\underline{n}}xn​的点值生成函数:∑i=n∞i!(n−i)!i!xi=xnexp⁡(x)\sum_...

2019-08-13 21:54:06 204

原创 【模板】【洛谷P5396】第二类斯特林数·列(倍增)(NTT)

传送门题解:考虑第二类斯特林数的列生成函数Fk(x)=∑i=kSi,kxiF_{k}(x)=\sum_{i=k}S_{i,k}x^iFk​(x)=∑i=k​Si,k​xi根据递推式Sn,i=Sn−1,i−1+iSn−1,iS_{n,i}=S_{n-1,i-1}+iS_{n-1,i}Sn,i​=Sn−1,i−1​+iSn−1,i​我们有Fk(x)=x1−kxFk−1(x)F_k(x)=\fr...

2019-08-13 21:22:00 215

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除