BZOJ3527 推出卷积公式FFT求值】的更多相关文章

BZOJ3527 推出卷积公式FFT求值 传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=3527 题意: \(F_{j}=\sum_{i<j} \frac{q_{i} q_{j}}{(i-j)^{2}}-\sum_{i>j} \frac{q_{i} q_{j}}{(i-j)^{2}}\) 求\(E_i=F_i/q_i\) 题解: 推公式: \[ E_i=F_i/q_i\\ E_i=\sum_{j=i}^{n}\frac{q_j}{(i…
FFT求卷积(多项式乘法) 卷积 如果有两个无限序列a和b,那么它们卷积的结果是:\(y_n=\sum_{i=-\infty}^\infty a_ib_{n-i}\).如果a和b是有限序列,a最低的项为a0,最高的项为an,b同理,我们可以把a和b超出范围的项都设置成0.那么可以得出:y0=a0b0,y1=a1b0+a0b1,y2=a0b2+a1b1+a2b0--,y(n+m)=a(n)b(m). 构造两个多项式A(x)和B(x): \(A=a_0+a_1x+a_2x^2+...+a_{n-1}…
卷积 给定向量:, 向量和: 数量积(内积.点积): 卷积:,其中 例如: 卷积的最典型的应用就是多项式乘法(多项式乘法就是求卷积).以下就用多项式乘法来描述.举例卷积与DFT. 关于多项式 对于多项式,系数为,设最高非零系数为,则其次数就是,记作.任何大于的整数都是的次数界. 多项式的系数表达方式:(次数界为). 则多项式的系数向量即为. 多项式的点值表达方式:,其中各不相同,. 离散傅里叶变换(DFT) 离散傅里叶变换(Discrete Fourier Transform,DFT).在信号处…
公式求值 输入n, m, k,输出图1所示的公式的值.其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数.组合数的计算公式如图2所示. 输入的第一行包含一个整数n:第二行包含一个整数m,第三行包含一个整数k. 计算图1所示的公式的值,由于答案非常大,请输出这个值除以999101的余数. [样例输入1] 3 1 3 [样例输出1] 162 [样例输入2] 20 10 10 [样例输出2] 359316 [数据规模与约定] 对于10%的数据,n≤10,k≤3: 对于20%的数…
问题:A,B,C,D分别为不同的整数,满足以下乘法公式,求A,B,C,D的值 解题思路: 由题意可知A,B,C,D为不同的整数,则A!=B,A!=C,A!=D,B!=C,B!=D,C!=D 再由给出公式的解题步骤可知A,B,C,D其中一位数是0,则C=0,因公式中给出的9可得出A=3,也因此限制了这个四位数的千位是3: 再看解题步骤可知第一行代表:D*ABCD,第二行代表:B*ABCD,第三行代表:A*ABCD,因都是四位数,以此为限制条件. 最后看结果数为八位数,说明9往前进了一位也表明第二行…
题目 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei. 输入格式 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. 输出格式 n行,第i行输出Ei.与标准答案误差不超过1e-2即可. 输入样例 5 4006373.885184 15375036.435759 1717456.469144 8514941.004912 1410681.345880 输出样例 -16838672.693 3439.793 7509018.566 4595686.886 1090304…
预备知识:FFT/NTT 多项式的逆 给定一个多项式 F(x)F(x)F(x),请求出一个多项式 G(x)G(x)G(x),满足 F(x)∗G(x)≡1(mod xn)F(x)*G(x) \equiv 1(mod\ x^n)F(x)∗G(x)≡1(mod xn). 系数对 998244353998244353998244353 取模,1≤n≤1051≤n≤10^51≤n≤105 首先将多项式的长度拓展至222的次幂,然后我们要求的是 G(x)∗F(x)≡1 (mod xn)G(x)*F(x) \…
行列式求值 这是一个让你掉头发的模板题 行列式的定义 行列式 (\(\texttt{Determinant}\)) 是一个函数定义,取值是一个标量. 对一个 \(n\times n\) 的矩阵 \(A\)(\(n\) 阶方阵),其 \(n\) 阶行列式写作 \(\det(A)\) 或者 \(|A|\),定义为: \[\det(A)=|A|=\sum_p(-1)^{\tau(p)}\prod_{i=1}^n a_{i,p_i} \] \(p\) 表示一个排列,所有可能的 \(p\) 则是 \(1\…
[BZOJ3527]力(FFT) 题面 Description 给出n个数qi,给出Fj的定义如下: \[Fj=\sum_{i<j}\frac{q_i q_j}{(i-j)^2 }-\sum_{i>j}\frac{q_i q_j}{(i-j)^2 }\] 令\(Ei=Fi/qi\),求\(Ei\). Input 第一行一个整数n. 接下来n行每行输入一个数,第i行表示qi. n≤100000,0<qi<1000000000 Output n行,第i行输出Ei.与标准答案误差不超过1…
二更:把更多的行列式有关内容加了进来(%%%%%Jelly Goat奆佬) 题目描述 给你一个N(n≤10n\leq 10n≤10)阶行列式,请计算出它的值 输入输出格式 输入格式: 第一行有一个整数n 在以下n行中,每行有n个整数,表示该行列式 输出格式: 这个行列式的值 输入输出样例 输入样例#1: 8 2 10 4 4 3 6 10 6 1 10 9 3 2 1 6 7 3 9 8 7 1 1 8 7 2 10 8 6 9 9 3 4 1 7 1 8 2 6 2 3 9 2 4 8 10…
题面 传送门 前置芝士 \(MTT\),多项式多点求值 题解 这题法老当初好像讲过--而且他还说这种题目如果模数已经给定可以直接分段打表艹过去 以下是题解 我们设 \[F(x)=\prod_{i=0}^{s-1}(x+i)\] 分治\(FFT\)即可求出 然后我们用多点求值求出\(x=1,s+1,2s+1,...,s^2-s+1\)时的答案 这样的话可以计算出\((s^2)!\),剩下没计算的部分直接暴力就是了 如果我们取\(s=\sqrt{n}\),复杂度大概就是\(O(s\log^2s)\)…
题意:求母串中可以匹配模式串的子串的个数,但是每一位i的字符可以左右偏移k个位置. 分析:类似于 UVALive -4671. 用FFT求出每个字符成功匹配的个数.因为字符可以偏移k个单位,先用尺取法处理出每个位置能够取到的字符.设模式串长度为m. 令\(C(m-1+k) = \sum_{i=0}^{m-1}A_{i+k}*B(m-i-1)\). 反转模式串B, 对每个字符c,若该位上能够取到c,则多项式该位取1,否则为0,FFT求卷积.并记录[m-1,n-1]每个位置4次计算的系数\(C\)之…
http://codercdy.com/openglxue-xi-bi-ji-qiu-zhi-qi-he-nurbs/ 在最底层,图形硬件所绘制的是点.直线和多边形(通常是三角形和四边形).平滑的曲线或表面是通过使用大量的微小线段或多边形模拟的.但是,从数学角度而言,许多非常实用的曲线和表面可以用少许几个参数(例如控制点)来描述.保存一个表面的16个控制点要比保存1000个三角形以及这些三角形每个顶点的法线向量信息所需要的空间要少的多.另外,这1000个三角形只能对真正的表面进行近似的模拟,而这…
2452: 麦克劳林用于函数求值 时间限制: 1 Sec  内存限制: 128 MB 提交: 18  解决: 12 题目描述 泰勒公式是一个用函数在某点的信息描述其附近取值的公式.如果函数足够光滑的话,在已知函数在某一点的各阶导数值的情况之下,泰勒公式可以用这些导数值做系数构建一个多项式来近似函数在这一点的邻域中的值.函数的麦克劳林展开是泰勒公式的特殊形式,即泰勒公式中"某一点"取0的情况.下面是ex的麦克劳林展开式,据此求出多组ex的值. 精度要求:最后一项大于1e-7 输入 输入一…
1. 表达式的种类 如何将表达式翻译成能够正确求值的指令序列,是语言处理程序要解决的基本问题,作为栈的应用事例,下面介绍表达式的求值过程. 任何一个表达式都是由操作数(亦称运算对象).操作符(亦称运算符)和分界符组成的.通常,算术表达式有3种表示: ①中缀(infix)表示:<操作数><操作符><操作数>,如A+B. ②前缀(prefix)表示: <操作符><操作数><操作数>,如+AB. ③后缀(postfix)表示: <操作…
递推求值 nyoj上矩阵专题里的10道题水了AC率最高的5道,惭愧,还不是完全自己写的,用了几乎两周的时间.模板题我是有自信写出来的,但对于高级一点的矩阵构造,我还是菜的抠脚. 这题感谢MQL大哥和她女票指点,自己想了一天不会构造矩阵,然后两位巨巨一起讨论了一下,瞬间明白了.此题关键就是在于这个矩阵构造. 题意:给出M斐波那契的前两项f[1],f[2],以及递推式:f(x)=a*f(x-2)+b*f(x-1)+c 中的a,b,c,和n.求f[n]%1000007. 很裸的矩阵快速幂,但怎么构造这…
前言: 什么叫做:声明变量是求值过程?请看下面的声明, int i; 很简单,声明了个整型变量i,再看如下声明, int *p; 也很简单,立刻反应出来它是指向整型的指针,但是具体如何推倒出来的呢?其实在C语言中,变量的声明就是一种求值过程,把*p这部分声明看成表达式,对这个表达式的求值的结果是int类型,这样就可以倒推出p是指针整型的指针了,因为只有对指向整型的指针进行解引用操作才是整型类型!还有很多复杂的声明,都可以使用这种方法求其具体的类型. 下面让我们来验证typedef定义的新类型和普…
LINK:P5667 拉格朗日插值2 给出了n个连续的取值的自变量的点值 求 f(m+1),f(m+2),...f(m+n). 如果我们直接把f这个函数给插值出来就变成了了多项式多点求值 这个难度好像有点大. 不妨 直接考虑拉格朗日插值. 设此时要求f(k) 那么则有 \(\sum_{i=0}^nf(i)\frac{\Pi_{i\neq j}(k-j)}{\Pi_{i\neq j} (i-j)}\) 可以化简一下 \(f(k)=\sum_{i=0}^nf(i)\frac{ \Pi_{i\neq…
P7324 [WC2021] 表达式求值 闲话 WC2021 我只得了 20 分,三道题总共 20 分.我是下场了突然后知后觉这件事的,主要原因是我开了 C++11,然后 T1 T2 都没分了.在洛谷上测本来能拿银牌的.T1 的乱搞能拿 48,还挺高的. 幸亏咱们陕西省选不看冬令营成绩.幸亏是在省选前犯的这个错误.告诫后人和自己,写题前一定要看编译选项,否则只能后悔莫及. T2 场上写的是不带问号的 \(O(n|E|)\) 和带问号 \(O(n|E|m^2)\) 的 70 分暴力.后者可以用 m…
\[\newcommand{\vct}[1]{\boldsymbol{#1}} \newcommand{\mat}[1]{\begin{bmatrix}#1\end{bmatrix}} \newcommand{\opn}[1]{\operatorname{#1}} \mathscr{\text{Defining }\LaTeX\text{ Macros...}} \]   我并没有透彻理解涉及知识点的严谨描述形式,所以本文大量用语是基于让读者理解而非让读者以此为研究依据的,烦请注意.   设现有…
在进行项目开发的时候,刚好需要用到对字符串表达式进行求值的处理场景,因此寻找了几个符合要求的第三方组件LambdaParser.DynamicExpresso.Z.Expressions,它们各自功能有所不同,不过基本上都能满足要求.它们都可以根据相关的参数进行字符串表达式的求值,本篇随笔介绍它们三者的使用代码,以及总结其中的一些经验. 数学表达式求值应该是最常见的,一般我们在应用程序中如果需要计算,是需要对参数进行类型转换,然后在后台进行相应计算的.但是如果是计算一些符合的式子或者公式,特别是…
「注释」作者在本文里没有说明这么一个事实: 目前的版本Lo-Dash v2.4.1并没有引入延迟求值的特性,Lo-Dash 3.0.0-pre中部分方法进行了引入,比如filter(),map(),reverse(). 原文 我时常觉得像Lo-Dash这样优秀的库已经无法再优化了.它整合了各种奇技淫巧已经将JavaScript的性能开发到了极限.它使用了最快速的语句,优化的算法,甚至还会在发版前做性能测试以保证回归没问题. 延迟求值 但似乎我错了-还可以让Lo-Dash有明显的提升.只需将关注点…
斐波那契数列(Fibonacci sequence),又称黄金分割数列,也称为"兔子数列":F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*).例如 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........这个数列从第3项开始,每一项都等于前两项之和,而且当n趋向于无穷大时,前一项与后一项的…
题目大意 给一个含字母a的表达式,求n个选项中表达式跟一开始那个等价的有哪些 做法 模拟一个多项式显然难以实现那么我们高兴的找一些素数代入表达式,再随便找一个素数做模表达式求值优先级表 - ( ) + - * ^ ( < = < < < < ) + < > > > < < - < > > > < < * < > > > > < ^ < > > >…
Java字符串转换成算术表达式计算并输出结果,通过这个工具可以直接对字符串形式的算术表达式进行运算,并且使用非常简单. 这个工具中包含两个类 Calculator 和 ArithHelper Calculator 代码如下: import java.util.Collections; import java.util.Stack; /** * 算数表达式求值 * 直接调用Calculator的类方法conversion() * 传入算数表达式,将返回一个浮点值结果 * 如果计算过程错误,将返回一…
学了这么久的C语言,竟然第一次碰到这么诡异的实参求值顺序问题,大跌眼镜.果然阅读面太少了! #include<iostream> void foo(int a, int b, int c) { std::cout<<a<<","<<b<<","<<c<<std::endl; //3,2,1 } int main() { ; foo(i++,i++,i++); } 亦即C/C++求值顺…
一.题目描述 请用 python3 编写一个计算器的控制台程序,支持加减乘除.乘方.括号.小数点,运算符优先级为括号>乘方>乘除>加减,同级别运算按照从左向右的顺序计算. 二.输入描述 数字包括"0123456789",小数点为".",运算符包括:加("+").减("-").乘("*").除("/").乘方("^",注:不是**!).括号("…
结论是:在一个表达式中,如果两个相邻操作符的执行顺序由它们的优先级决定,如果它们的优先级相同,它们的执行顺序由它们的结合性决定.若出现前述规则描述之外的情形,编译器可以自由决定求值的顺序(只要不违反逗号.&&.||和?:操作符所施加的限制).因此,同一个存在歧义的表达式在不同的编译器下会有不同的运算结果,应该避免写出有歧义的表达式,提高程序的可移植性. 另外,需要注意的是有些表达式的操作数在求值过程中可能需要转换为其他类型,最常见的有整形提升(一种隐式类型转换)和寻常算术转换. 整型值和浮…
1,表达式的求值顺序与堆栈结构 “表达式” 是程序语言一个很重要的术语,也是大家天天写的程序中很常见的东西,但是表达式的求值顺序一定是从左到右么? C/C++语言中没有明确规定表达式的运算顺序(从左到右,或是从右到左),这点与C#及Java语言都不同.不过可以确定的是,C#表达式的求值顺序一定是从左到右的.这个问题虽然对于大多数情况来说不重要,甚至很多普通C#,Java开发者都会忽略的问题,但是对于语言设计者,框架设计者,这是有可能需要考虑的问题. 堆栈是2种数据结构,“栈” 是一种后进先出的数…
一.简介 迷宫求解:类似图的DFS.具体的算法思路可以参考书上的50.51页,不过书上只说了粗略的算法,实现起来还是有很多细节需要注意.大多数只是给了个抽象的名字,甚至参数类型,返回值也没说的很清楚,所以很多需要自己揣摩.这也体现了算法和程序设计语言的特点,算法更侧重本质的描述,而任何编程语言都要照顾到实现的细节以及数据类型等语法方面的需求. 表达式求值: 由于数据的读入是按照字符读入的,所以这个简单的小程序只能计算个位数的运算. 二.头文件 迷宫求解: //3_2_maze.h /** aut…