ntt、fft
文章平均质量分 75
DZYO
Never stop
展开
-
BJ模拟 等差数列(分块+FFT)
Description 给定N个整数 A1,A2,⋯AN ,求有多少个三元组 (i,j,k) 满足 1≤ijk≤N 且 Aj−Ai=Ak−Aj 。Input 第一行一个正整数 N(3≤N≤105) 第二行 N 个整数 A1,A2,⋯,AN , 1≤Ai≤3×104Output 输出一个整数表示答案。Sa原创 2017-03-21 11:47:17 · 590 阅读 · 0 评论 -
整数划分问题的高效解法 (n logn)
一般此类问题可以看做是一个背包问题,不过有更优秀的解法。1.数字互不相同(51nod1201)(O(nn‾√)O(nn)O(n \sqrt {n}))注意到最多有O(n‾√)O(n)O(\sqrt{n})个数相加,则记fi,jfi,jf_{i,j}表示jjj个数和为iii的方案数。我们讨论一个方案的最小值是否为1,如果为1,则fi−1,j−1→fi,jfi−1,j−1→fi,jf_{i...原创 2018-05-04 20:14:53 · 2870 阅读 · 1 评论 -
Codechef : CLOWAY(特征多项式+二项式反演)
传送门题解: 先预处理出Gi,kGi,kG_{i,k}表示第iii个点走kkk步回到自己的个数(可以停留)。询问(l,r,k)(l,r,k)(l,r,k)时,我们把l,rl,rl,r的Gi,kGi,kG_{i,k}乘起来就得到了恰好kkk步走回自己的概率。 不过注意这样走可能存在某一步一张图都没有走,这时候是不合法的。 不过我们发现一个只走了jjj步的方案会被统计(kj)(kj)\b...原创 2018-05-17 20:15:26 · 569 阅读 · 0 评论 -
LOJ#6436. 「PKUSC2018」神仙的游戏
传送门题解: 瞎JB猜了个结论居然是对的,看了题解知道为什么对了。我们考虑先做模糊串匹配,那么长度不大于n2n2\frac{n}{2}的串只需要匹配上就行了。否则我们判断他的每一个周期子串是否能作前缀即可。 原因是如果有非法的必然是:0→?→?→10→?→?→10 \rightarrow ? \rightarrow ? \rightarrow 1类似的情况,而这个本质上就是一个跳周期...原创 2018-06-15 09:49:54 · 401 阅读 · 0 评论 -
计算烷烃的同分异构体个数
今天做__debug的题就有这道,他的Blog也写得挺清楚。相当于计算度数不超过4的无标号无根树个数。按照无根树的套路,我们直接枚举子树即可。 但是无根树可以用exp来搞,这个度数有限制。 我们可以换一种方法,显然子树每个点度数不超过3,记其生成函数为AAA,可以用Polya定义来计数: 首先假设儿子彼此有序,然后规定如果某个置换之后得到两个等价的东西,那么这两个算一个方案。 我们枚举每...原创 2018-07-08 18:31:58 · 10318 阅读 · 2 评论 -
LOJ#2554. 「CTSC2018」青蕈领主(分治FFT)
传送门题解:最长连续序列不能相交,那么只有包含关系。一个区间包含若干区间,我们可以先把这些区间内部确定,然后再把这些区间缩为一个点(因为连续),然后就只用解决长度为nnn且连续区间一定包含pnp_npn的方案数(否则就与LiL_iLi矛盾了)。令bpi=ib_{p_i}=ibpi=i,相当于是所有连续区间必须包含最大值,也就相当于必须包含最小值。记序列长度为nnn的答案为fnf_n...原创 2018-10-06 16:49:28 · 801 阅读 · 1 评论 -
多项式多点求值与快速插值
考虑给定多项式fff,如何求f(x1),f(x2),f(x3),...,f(xn)f(x_1),f(x_2),f(x_3),...,f_(x_n)f(x1),f(x2),f(x3),...,f(xn)。构造g=∏i=1n2(x−xi),h=∏i=n2+1n(x−xi)g=\prod\limits_{i=1}^{\frac{n}{2}}(x-x_i),h=\prod\limits_{i=...原创 2018-11-01 18:55:06 · 2584 阅读 · 0 评论 -
51nod1538: 一道难题(特征多项式+多项式取模/求逆)
传送门题解:观察下这个等式,其实就是fn=∑ifn−aif_n = \sum_{i}f_{n-a_i}fn=∑ifn−ai。前面的求逆预处理一下,后面的特征多项式倍增和取模就行了,时间复杂度O(klogklogm)O(k \log k \log m)O(klogklogm)。注意a1a_1a1可能大于23333,RE了半天。。#include <bits/stdc++...原创 2018-11-01 20:26:13 · 525 阅读 · 0 评论 -
UOJ#269. 【清华集训2016】如何优雅地求和(FFT)
传送门题解:把fff二项式变换一下就行了,变换可以用二项式反演。#include &lt;bits/stdc++.h&gt;using namespace std;const int RLEN=1&lt;&lt;18|1;inline char nc() { static char ibuf[RLEN],*ib,*ob; (ib==ob) &amp;&amp; (ob=(ib=i...原创 2018-11-02 15:49:11 · 682 阅读 · 0 评论 -
UOJ#272. 【清华集训2016】石家庄的工人阶级队伍比较坚强(循环卷积)
传送门题解:看做一个nnn元333次方程在做循环卷积即可。注意333次单位根可以直接扩域而不用去解三次剩余(只不过要卡常数)。#include <bits/stdc++.h>using namespace std;const int RLEN=1<<18|1;inline char nc() { static char ibuf[RLEN],*ib,*ob...原创 2018-11-04 20:11:40 · 329 阅读 · 0 评论 -
THUPC2017 I :Sum(牛顿恒等式)
题意:给定数组A1...,AnA_1...,A_nA1...,An,对于所有1≤i≤k1 \le i \le k1≤i≤k,求Si=∑jAjiS_i = \sum_{j}A_j^iSi=∑jAji。题解:这道题要用到一个叫牛顿恒等式的玩意儿。对于nnn次多项式f=∑i=0naixif=\sum_{i=0}^na_ix^if=∑i=0naixi(注意是首一多项式),设其几个根分...原创 2018-11-08 10:05:57 · 2555 阅读 · 0 评论 -
Codeforces 806F:Test Data Generation(组合数学)
传送门题解:相当于是要求:∑u∑i=1⌊n2u⌋[i为奇数]∑j=1n−1[j为偶数](i−1j)\sum_{u}\sum_{i=1}^{\lfloor\frac{n}{2^u}\rfloor}[i为奇数] \sum_{j=1}^{n-1}[j为偶数] \binom{i-1}{j}u∑i=1∑⌊2un⌋[i为奇数]j=1∑n−1[j为偶数](ji−1)然后注意这个jjj比较小,我...原创 2018-11-30 15:43:58 · 354 阅读 · 0 评论 -
集训队作业2018: 取名字太难了(FFT)
题意:大概是求∏i=1n(x+i)\prod_{i=1}^n(x+i)∏i=1n(x+i)系数模ppp意义下的分布。题解:分为(∏i=1p−1(x+i))⌊np⌋(\prod_{i=1}^{p-1}(x+i))^{\lfloor\frac{n}{p}\rfloor}(∏i=1p−1(x+i))⌊pn⌋,以及(∏i=1n&amp;VeryThinSpace;mod&amp;VeryThi...原创 2019-01-14 19:23:49 · 818 阅读 · 0 评论 -
Codeforces 960G:Bandit Blues(倍增FFT/第一类斯特林数)
传送门题解: 答案等于[n−1a+b−2]∗(a+b−2a−1)[n−1a+b−2]∗(a+b−2a−1)\begin{bmatrix} n-1 \\ a+b-2 \end{bmatrix} *\binom{a+b-2}{a-1}将最多的袋子剔除后,每个能看到的袋子与他挡住的袋子形成圆排列。我们从这a+b−2a+b−2a+b-2个圆排列中取出a−1a−1a-1个放到左边。注意[nm]...原创 2018-04-13 15:20:36 · 958 阅读 · 0 评论 -
BJ模拟 生日礼物(斯特林数+NTT)
BJ模拟 生日礼物(斯特林数+NTT)原创 2017-03-23 16:54:17 · 469 阅读 · 0 评论 -
BJ模拟:图片加密(KMP+FFT)
Description CJB天天要跟妹子聊天,可是他对微信的加密算法表示担心:“微信这种加密算法,早就过时了,我发明的加密算法早已风靡全球,安全性天下第一!” CJB是这样加密的:设CJB想加密的信息有 m 个字节。首先,从网上抓来一张 n(n≥m) 个字节的图片,分析里面的每个字节(byte)。每个字节有8位(bit)二进制数字。他想替换掉某些字节中最低位的二进原创 2017-03-27 12:52:48 · 626 阅读 · 0 评论 -
CC PRIMEDST(点分治+FFT)
题意给你一颗树,求距离为质数的点对个数。题解裸题。。。 顺便打一份点分治的板,以前打错板从来没错过。。。#include<iostream>#include<cstdio>#include<string>#include<cstring>#include<algorithm>#include<cmath>#include<vector>using namespace std;原创 2017-07-27 19:45:36 · 670 阅读 · 1 评论 -
BZOJ4827: [Hnoi2017]礼物(FFT)
传送门题意: 给两个序列ai,bia_i,b_i,可以对b序列进行右移或者整体加减cc,最小化∑i(xi−yi−ci)2\sum_i(x_i-y_i-c_i)^2.题解: 标准FFT裸题,真不敢相信这是T3的题..首先对原式展开,得: ∑ix2i+∑iy2i+n∗c2−2∗c(xi−yi)−∑i2xiyi\sum_i x_i^2+\sum_iy_i^2+n*c^2-2*c(x_i-y_i)-原创 2017-09-24 14:52:39 · 337 阅读 · 0 评论 -
关于快速傅里叶变换的一些总结
以前打FFT只想到背板就行了,现在看来还是有必要了解一下其原理,故写出此篇总结。概述FFT是一类用来计算多项式乘积的算法,如果用普通的方法进行,复杂度将会是O(n2)O(n^2),而FFT可以做到O(nlogn)O(n\log n)时间复杂度内解决。多项式及其乘法 多项式的点值表示 通过拉格朗日插值的唯一性可知,一个nn次多项式由n+1n+1个函数上的点确定。已知多项式A(x)=∑ni=原创 2017-07-26 19:44:49 · 3848 阅读 · 1 评论 -
BZOJ1919: [Ctsc2010]性能优化(FFT循环卷积)
传送门题意: 求给出两个长度为n的整数序列a[0..n−1]a[0..n−1],b[0..n−1]b[0..n−1]和非负整数CC。 对于两个长度为nn的整数序列,定义∗运算,结果为一个长度为n的整数序列,例如f∗g=hf∗g=h,则有h[k]=∑i+j≡k(modn)f[i]⋅g[j]h[k]=∑_{i+j≡k(mod \,n)}f[i]⋅g[j]。 求a∗b∗b∗⋯∗ba∗b∗b∗⋯∗原创 2017-11-28 22:33:55 · 2122 阅读 · 0 评论 -
BZOJ3456:城市规划(EGF+FFT/CDQ分治+FFT)
传送门题意:无向连通图的计数。题解: dalao的题解:http://blog.miskcoo.com/2015/05/bzoj-3456我说说做题时遇到的坑点吧: 1.C(i,2)不能用阶乘逆元来算,因为这样算出来是(modp)\pmod p意义下的,而费马小定理是(modp−1)\pmod {p-1}意义下的。。 2.倍增计算时FFT长度要取22*当前长度,否则计算出来的是循环卷积,详细可原创 2017-11-29 22:42:18 · 741 阅读 · 0 评论 -
BZOJ3625: [Codeforces Round #250]小朋友和二叉树(OGF+牛顿迭代)
传送门题解:看到这种二叉树的题第一反应就是类似卡特兰数的递推。或者另外一种直观的想法是看成一个点和两边的二叉树的拼接,注意这里不带标号。那么很简单了,对于点和二叉树分别构造OGF:g(x),f(x)OGF:g(x),f(x),那么: f=gf2+1f=gf^2+1 解二次方程: f=21±1−g2−−−−−√f=\frac{2}{1\pm \sqrt{1-g^2}} 舍去减的根原创 2018-01-21 22:22:43 · 665 阅读 · 0 评论 -
COGS 2189. [HZOI 2015] 帕秋莉的超级多项式(牛顿迭代)
传送门题意: 求:G(x)=(1+ln(1+1exp(∫1F(x)√)))kG(x)=(1+ \ln (1+\frac{1}{exp(\int \frac{1}{\sqrt{F(x)}})}))^k题解:依次进行牛顿迭代即可。注意多项式kk次方不需要快速幂: lnG(x)=ln(F(x)k)=klnF(x)\ln G(x)=\ln (F(x)^k) =k \ln F(x) 多项式再expexp原创 2018-01-25 08:15:24 · 579 阅读 · 0 评论 -
BZOJ 4228 :Tibbar的后花园(EGF+牛顿迭代)
传送门题意: 求n" role="presentation">nnn个点的无向图个数,满足: 任意三个点能互相到达的点a,b,c" role="presentation">a,b,ca,b,ca,b,c。 满足dis(a,b),dis(b,c),dis(a,c)" role="presentation">dis(a,b),dis(b,c),dis(a,c)dis(a,b),dis(b,c原创 2018-01-21 21:05:59 · 536 阅读 · 0 评论 -
PE 559:Permuted Matrices(容斥,多项式求逆)
传送门题意: 有一个r∗nr∗nr*n的矩阵TTT和一个整数kkk。 矩阵的行编号1~r1~r1\text{~}r, 列编号1~n1~n1\text{~} n。 我们说jjj(1≤j<n)(1≤j<n)(1 ≤ j< n)是和谐的, 当且仅当∀1≤i≤r,Ai,j<Ai,j+1∀1≤i≤r,Ai,j<Ai,j+1∀1 ≤ i ≤ r, A_{i,j} < A_{i,...原创 2018-02-27 16:43:24 · 334 阅读 · 2 评论 -
Codechef :QPOLYSUM(FFT/拉格朗日插值)
传送门题意: 求:∑ni=1fiqi(n≤1e18,deg(fi)≤5e5)∑i=1nfiqi(n≤1e18,deg(fi)≤5e5)\sum_{i=1}^n f_i q^i( n\le 1e18, deg(f_i) \le 5e5)题解: 这道题有弱化版:BZOJ4126 也有弱化版的弱化版:BZOJ3516 我写了后者的题解:传送门因为这是一般形式,所以前者的题解就直接忽略...原创 2018-03-17 20:10:20 · 1184 阅读 · 0 评论 -
Topcoder SRM 603 Div1 1000 :Sum Of Arrays (FFT)
Hero has two arrays of integers: A and B. Each of the arrays contains exactly n elements. Hero will do two things with his arrays: First, he will permute the elements in each of his arrays someh...原创 2018-03-19 11:31:24 · 354 阅读 · 0 评论 -
NOI 模拟:黑暗(多项式求逆+分治FFT)
题意: n 个点的无向图,每条边都可能存在,一个图的权 值是连通块个数的 m 次方,求所有可能的图的权值和。(n≤3e4,m≤15)(n≤3e4,m≤15)(n\le 3e4, m\le 15)题解:用第二类斯特林数消掉nmnmn^m : nm=∑i=1m{mi}(ni)i!nm=∑i=1m{mi}(ni)i!n^m = \sum_{i=1}^m \begin{Bma...原创 2018-03-23 07:30:43 · 897 阅读 · 0 评论 -
《国际最佳数学征解问题分析》P77(单位根反演+生成函数)
问题给定x1,...,xnx_1,...,x_nx1,...,xn,令xi(1)=xi+xi+12x_i^{(1)} = \frac{x_i+x_{i+1}}{2}xi(1)=2xi+xi+1,i=1,...,ni=1,...,ni=1,...,n,其中xn+1=xix_{n+1}=x_ixn+1=xi.归纳地定义xi(k)=xi(k−1)+xi+1(k−1)2,i=1,......原创 2020-04-05 16:42:17 · 490 阅读 · 0 评论