AGC005F Many Easy Problems(NTT)】的更多相关文章

先只考虑求某个f(k).考虑转换为计算每条边的贡献,也即该边被所选连通块包含的方案数.再考虑转换为计算每条边不被包含的方案数.这仅当所选点都在该边的同一侧.于是可得f(k)=C(n,k)+ΣC(n,k)-C(sizei,k)-C(n-sizei,k).于是就可以O(n)求出某个f(k)了. 现在要求所有f(k),容易发现是一个卷积的形式,并且所给模数是一个隐蔽的NTT模数(最小原根是5),直接NTT即可. #include<iostream> #include<cstdio> #i…
[BZOJ5306]染色(NTT) 题面 BZOJ 洛谷 题解 我们只需要考虑每一个\(W[i]\)的贡献就好了 令\(lim=min(M,\frac{N}{S})\) 那么,开始考虑每一个\(W[i]\)的贡献 \[\sum_{k=0}^{lim}W[k]C_M^kC_N^{kS}\frac{(kS)!}{(S!)^k}\times Others\] \(Others\)是其他的东西,先考虑前面这堆东西的意义. 我们枚举恰好出现了\(S\)次的颜色个数\(k\),那么,选定这些颜色的方案数 首…
[LOJ6436][PKUSC2018]神仙的游戏(NTT) 题面 LOJ 题解 看到\(zsy\)从\(PKUSC\)回来就秒掉了这种神仙题 吓得我也赶快看了看\(PKUSC\)都有些什么神仙题 然后就找到了这样一道神仙题 考虑一个奇怪的暴力: 我们只需要对于\(0/1\)进行匹配 如果出现了\(0/1\)匹配的情况,那么当前长度一定不能构成\(border\) 的确,这样子肯定是对的, 但是我们似乎有一些奇怪的情况没有考虑清楚 如果两个串出现了交集,似乎不能构成\(border\)的情况就会…
刚学完FFT,干脆把NTT也学了算了 (一)预备知识 关于原根,这里说得蛮详细的百度百科 为什么使用原根呢?为什么原根可以替代\(\omega_{n}\)呢?想知道为什么就看here NTT用到的各种素数,在这里here (二)重要知识 直接上代码 原题洛谷P1919 #include<cstdio> #include<iostream> #include<algorithm> #include<cstring> #include<cmath>…
06-图2 Saving James Bond - Easy Version (25 分) This time let us consider the situation in the movie "Live and Let Die" in which James Bond, the world's most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land…
一.简介 前置知识:多项式乘法与 FFT. FFT 涉及大量 double 类型数据操作和 \(\sin,\cos\) 运算,会产生误差.快速数论变换(Number Theoretic Transform,简称 NTT)在 FFT 的基础上,优化了常数及误差. NTT 其实就是把 FFT 中的单位根换成了原根. NTT 解决的是多项式乘法带模数的情况,可以说有些受模数的限制,多项式系数应为整数. 二.原根 与 NTT 「算法笔记」基础数论 2 中提及了原根的部分内容. 对于质数 \(p\),若…
题目链接 https://loj.ac/problem/565 题解 首先,若进行所有操作之后成功执行的操作数为 \(m\),最终得到的数为 \(w\),那么发生改变的二进制位的数量之和(即代价之和)为 \(2m - {\rm bit}(w)\).其中,\({\rm bit}(x)\) 表示 \(x\) 在二进制下 \(1\) 的个数. 证明:不难发现,一次操作会改变的二进制位的总数为进位次数\(+1\),因此执行 \(m\) 次操作后改变的二进制位的数量总和为总进位次数\(+m\).由于一次进…
题面 传送门 题解 一旦字符串踏上了通配符的不归路,它就永远脱离了温暖的字符串大家庭的怀抱 用人话说就是和通配符扯上关系的字符串就不是个正常的字符串了比如说这个 让我们仔细想想,如果一个长度为\(len\)的前缀是border,那么对于\(\forall i\in[1,len]\),都有\(s[i]=s[i+n-len]\),也就是说在模\(n-len\)意义下所有位置上的\(01\)要相等 如果有一个\(0\)位置\(i\),一个\(1\)位置\(j\),记\(x=|i-j|\),那么所有\(…
点此看题面 大致题意: 计算\(\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\)无关,…
传送门 学习了一下大佬的->这里 已知多项式$A(x)$,若存在$A(x)B(x)\equiv 1\pmod{x^n}$ 则称$B(x)$为$A(x)$在模$x^n$下的逆元,记做$A^{-1}(x)$ 具体的来说的话,就是两个多项式$A,B$相乘模$x^n$之后,所有次数大于等于$n$的项都没了,那么只有在剩下的项相乘之后未知数项全被消掉只留下一个常数项$1$时,$B$才是$A$的逆元 然后为什么要有模$x^n$的限制呢?因为没有这个限制的话,$B$可能有无穷多项 然后我们考虑如何计算$B(x…