摘要: 多项式乘法FFT与NTT 前言 所谓多项式乘法,就是给定两个$n$项多项式$f(x)=a_0+a_1x+a_2x2+\dots a_{n-1}x{n-1}$以及$g(x)=b_0+b_1x+b_2x2+\dots b_{n-1}x{n-1}\(,让你求出这两个多项式的乘积\)(fg)(x)=(a_0 阅读全文
posted @ 2022-03-18 14:57 chyuhoin 阅读(1512) 评论(1) 推荐(0)
摘要: 一、倍增 倍增是一种特殊的递推、查找方式。如果说你从第一个开始一个一个递推或者一个一个查找会超时,倍增就是一个很好的解决方案。倍增的原理也很简单:每一次往前找2的整数次幂个——例如第一次找一个,第二次2个,第3次4个,第4次8个——直到找到目标数字为止。如果总共有n个数字,这个算法只需要logn的效 阅读全文
posted @ 2022-03-18 14:51 chyuhoin 阅读(612) 评论(0) 推荐(0)
摘要: 一、STL里的优先队列 优先队列(priority_queue)是STL自带的堆,支持插入、查询最大值、删除最大值,也包括查询容器size等常规操作。整体常数不算特别大,是算法竞赛中需要用到堆时的不二之选。它的基本操作如下:(T是一个可以比大小的类型) priority_queue<T> q 声明一 阅读全文
posted @ 2022-03-18 14:50 chyuhoin 阅读(93) 评论(0) 推荐(0)
摘要: 一、位运算 计算机中数字以二进制的方法存储,位运算是针对二进制进行的一种速度极快的基础运算。C++里一个int有4个字节也就是32位二进制数,其中最高位是符号位,1表示负数,0表示正数。除此以外,char是1个字节8位,long long是8个字节64位,bool是1个字节1位,unsigned类型 阅读全文
posted @ 2022-03-18 14:49 chyuhoin 阅读(102) 评论(0) 推荐(0)
摘要: 一、树的基本介绍 树形dp是近几年noip考察的热门,而且这也是dp当中变化极多,综合性极强,对思维能力要求极高的一类模型。这里主要对树形dp做一个简单的入门,为同学们将来面对高难度的树形dp做准备。 树指的是由n个点n-1条边构成的连通无向图,有的树指定了根节点,称为有根树。树上任意两个点之间有且 阅读全文
posted @ 2022-03-18 14:46 chyuhoin 阅读(117) 评论(0) 推荐(0)
摘要: 一、区间dp的基本内容 区间dp可以视作线性dp的一个分支,之所以把它单独列出来是因为区间dp的解法比较特殊,同时也比较固定。虽然容易造成初见杀,但是反而容易掌握。区间dp与其他线性dp不同的地方在于它的状态是以序列上的一个区间来表示的,而且大区间的答案可以从小区间的答案得到。下面是区间dp的基本思 阅读全文
posted @ 2022-03-18 14:44 chyuhoin 阅读(130) 评论(0) 推荐(0)
摘要: 一、dp的引入 动态规划(简称dp)是指把一个问题分解为若干个子问题,通过局部最优解得到全局最优的一种算法策略或者说一种思想方法。简单来讲,就是说用一个数组表示我们要求的问题的答案:如果你知道前一个问题的答案,你就可以推出后一个问题的答案。dp有以下几个常见的概念: 1.状态:指当前所考虑的子问题的 阅读全文
posted @ 2021-07-15 21:04 chyuhoin 阅读(1041) 评论(1) 推荐(3)