[Luogu] 【模板】点分治1】的更多相关文章

P4721 [模板]分治 FFT 链接 luogu 题目描述 给定长度为 \(n-1\) 的数组 \(g[1],g[2],..,g[n-1]\),求 \(f[0],f[1],..,f[n-1]\),其中 \[f[i]=\sum_{j=1}^if[i-j]g[j]\] 边界为 \(f[0]=1\) .答案模 \(998244353\) . 思路 分治+ntt.跑900+ms 其实limit只要设到区间长度就可以了,其他的是用不到的.对前半部分也没得影响. 代码 #include <bits/std…
P4721 [模板]分治 FFT 题目背景 也可用多项式求逆解决. 题目描述 给定长度为 \(n−1\) 的数组 \(g[1],g[2],\dots,g[n-1]\),求 \(f[0],f[1],\dots,f[n-1]\),其中\(f[i]=\sum_{j=1}^if[i-j]g[j]\) 边界为 \(f[0]=1\) .答案模 \(998244353\) . 输入输出格式 输入格式: 第一行一个正整数 \(n\) . 第二行共 \(n−1\) 个非负整数 \(g[1],g[2],\dots,…
Luogu 3806 点分治 要分清楚各个函数的作用及互相调用的关系. 因为是无根树,找重心的时候,父亲一边的所有节点也可以看做是一颗子树. #include<bits/stdc++.h> using namespace std; #define ll long long #define mp make_pair #define pii pair<int,int> inline int read() { int x=0; bool pos=1; char ch=getchar();…
P4721 [模板]分治 FFT 题目背景 也可用多项式求逆解决. 题目描述 给定长度为 $n-1$ 的数组 $g[1],g[2],..,g[n-1]$,求 $f[0],f[1],..,f[n-1]$,其中 $$f[i]=\sum_{j=1}^if[i-j]g[j]$$ 边界为 $f[0]=1$ .答案模 $998244353$ . 输入输出格式 输入格式: 第一行一个正整数 $n$ . 第二行共 $n-1$ 个非负整数 $g[1],g[2],..,g[n-1]$,用空格隔开. 输出格式: 一行…
[模板]洛谷·点分治 1.求树的重心 树的重心:若A点的子树中最大的子树的size[] 最小时,A为该树的中心 步骤: 所需变量:siz[x] 表示 x 的子树大小(含自己),msz[x] 表示 其子树中最大的子树的大小,sum表示当前子树所有节点个数,root表示当前子树根节点 处理出siz[x],msz[x] 按最大子树最小的标准处理出root inline void GetRoot(int x,int fa){ siz[x]=1;msz[x]=0;siz[x]//表示 x 的子树大小(含自…
题意: 给定一棵有n个点的树询问树上距离为k的点对是否存在. 分析: 这个题的询问和点数都不多(但是显然暴力是不太好过的,即使有人暴力过了) 这题应该怎么用点分治呢.显然,一个模板题,我们直接用套路,每次找重心,对于这个重心处理,过当前点的符合要求的路径. 我们可以看到这个最大长度1e7,开数组是开得下的,所以维护一个数组(或者bitset也行)来保存之前的子树中到根距离的长度,之后访问到每个子树时,先查询,再记录,最后删除标记,将所有的点都统计完之后,答案便被保存到了数组中,直接按照题意输出即…
还不会这题的多项式求逆的算法. 发现每一项都是一个卷积的形式,那么我们可以使用$NTT$来加速,直接做是$O(n^2logn)$的,我们考虑如何加速转移. 可以采用$cdq$分治的思想,对于区间$[l, r]$中的数,先计算出$[l, mid]$中的数对$[mid + 1, r]$中的数的贡献,然后直接累加到右边去. 容易发现,这样子每一次需要用向量$[l,l + 1, l +  2, \dots, mid]$卷上$g$中$[1, 2, \dots, r - l]$. 时间复杂度$O(nlog^…
分治FFT的板子为什么要求逆呢 传送门 这个想法有点\(cdq\)啊,就是考虑分治,在算一段区间的时候,我们把他分成两个一样的区间,然后先做左区间的,算完过后把左区间和\(g\)卷积一下,这样就可以算出左区间里的\(f\)对右边的贡献,然后再算右边的就好了. 手玩一组样例吧:g=[0,3,1,2](默认\(g[0] = 0\)) 一开始,只有f[0]=1 f: [1 0|0 0] 然后我们从中间分开来,先算左边的 f: [1|0|0 0] 然后在分下去我们会找到\(f[0]\),就拿这一段和\(…
题目:https://www.luogu.org/problemnew/show/P4721 分治FFT:https://www.cnblogs.com/bztMinamoto/p/9749557.html https://blog.csdn.net/VictoryCzt/article/details/82939586 不知为何自己的总是很慢. 觉得是 n 和 m 表示次数的话,len<=n+m:n 和 m 表示项数的话,len<n+m:应该是这样? 这里是 mid-L+1 项和 R-L+1…
题目: 洛谷 4721 分析: 我觉得这个 "分治 FFT " 不能算一种特殊的 FFT ,只是 CDQ 分治里套了个用 FFT (或 NTT)计算的过程,二者是并列关系而不是偏正关系,跟 CDQ 分治套树状数组之类性质差不多吧(所以我也不知道为什么洛谷要把这个作为一个模板). 言归正传,先看一眼原来的式子: \[f[i]=\begin{cases}1\ (i=0)\\\sum_{j=1}^{i}f[i-j]g[j]\ \mathrm{otherwise}\end{cases}\] \…