摘要: FFT的应用 ——讲稿 概述 FFT的模板很简单,大家都会背,于是出题的空间就在于建模了。FFT的题目难在建模,往往需要将问题抽象出来,经过一系列转化后得到乘积式的和,再赋予式子各个项的系数一定的意义即可。 一些链接: FFT快速傅里叶变换 NTT数论变换 MTT:任意模数NTT 分治FFT 多项式 阅读全文
posted @ 2019-08-03 19:44 guoshaoyang 阅读(1283) 评论(0) 推荐(1) 编辑
摘要: 日常做题步骤 通用模式前提:已会题目所需的技能,但题目较难 先仔细看题目,出思路,没有思路则看题解,进入第2步 初步细化,在纸上写出基本步骤,写代码之前和题解对照,确认自己不是假算法,进入第3步 自行写代码 先通读代码,再测试并调试 提交,调试,参照题解,通过 如果题目很有代表性(有特殊的算法、技巧 阅读全文
posted @ 2019-06-30 15:14 guoshaoyang 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 排队-题解 《排队》是一道很优美的贪心题(我不知道它的来源,估计其难度提高+/省选),曾被出在了北京大学计算概论B的考试中。本文的受众主要是学习计算概论的同学以及老师,不假定读者有信息竞赛(OI)经验。 题目描述 有 N 名同学从左到右排成一排,第 i 名同学的身高为 hi。现在张老师想改变排队的顺 阅读全文
posted @ 2023-11-10 16:11 guoshaoyang 阅读(564) 评论(0) 推荐(0) 编辑
摘要: 一元二次方程易错点 概述 中考的一元二次方程在数学层面上很简单,但由于其范围的限定,有许多的易错点。 易错点 1. 判定 要求:①一个未知数②最高二次③整式方程(整式方程看化简后的次数,分式或根式看化简前的次数) 根据方程次数求参数值 关于$x$的方程$\displaystyle (m+1)x^{m 阅读全文
posted @ 2019-09-14 18:30 guoshaoyang 阅读(1781) 评论(0) 推荐(0) 编辑
摘要: 分块入门 概述 分块是一种$O(N\sqrt{N})$的维护序列的数据结构,它比树形数据结构好写(方便书写和调试但代码不一定短)、复杂度也很接近(有时能卡过$O(N\log N)$的数据)、功能也更强大,常被视为一种“准暴力”的手段。 注意:我们通常将分块看作$O(N\sqrt{N})$的数据结构, 阅读全文
posted @ 2019-08-25 13:32 guoshaoyang 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 洛谷网课 2019年暑期洛谷网课内容总结 概述 今年暑假我订了提高组和省选的洛谷网课,并以此为线索学习提高组内容,总体来讲收获还是蛮大的。 我当前的目标是提高组,所以学习侧重于提高组,省选内容也服务于提高组,感觉学习后对知识点的系统认识高了很多。洛谷网课的难度相较于标签偏低,它设定的提高组内容不够难 阅读全文
posted @ 2019-08-14 18:22 guoshaoyang 阅读(2070) 评论(0) 推荐(1) 编辑
摘要: 固定总长的多棵树状数组 概述 有时候,我们需要很多棵树状数组,每棵尺寸的值域都很大,但总长是固定的并且不太大。 此时我们可以将所有树状数组顺序放在一个数组上面,将询问离线后给每棵树状数组标一个起点和尺寸,每次从起点开始按照正常的二进制位做即可。 一般形式 先直接给出伪代码 阅读全文
posted @ 2019-08-07 15:29 guoshaoyang 阅读(204) 评论(0) 推荐(0) 编辑
摘要: P1450 [HAOI2008]硬币购物 "原题链接" 题面 题目描述 硬币购物一共有4种硬币。面值分别为$c_1,c_2,c_3,c_4$。某人去商店买东西,去了tot次。每次带$d_i$枚$c_i$硬币,买$s_i$的价值的东西。请问每次有多少种付款方法。 输入格式 第一行 $c_1,c_2,c 阅读全文
posted @ 2019-08-05 11:57 guoshaoyang 阅读(265) 评论(0) 推荐(0) 编辑
摘要: Treap介绍 概述 Treap是平衡树大家族的一员,是众多平衡树中最基础、最容易实现的,常数也不大。可以维护权值(常用)和区间。 Treap是Tree和Heap的合成词,其既有 二叉查找树BST 的性质,又有 堆Heap 的性质,于是有能维护排名,有能保证深度在$\Theta(\log N)$的量 阅读全文
posted @ 2019-08-05 07:54 guoshaoyang 阅读(5499) 评论(1) 推荐(3) 编辑
摘要: MTT:任意模数NTT 概述 有时我们用FFT处理的数据很大,而模数可以分解为$a\cdot 2^k+1$的形式。次数用FFT精度不够,用NTT又找不到足够大的模数,于是MTT就应运而生了。 MTT没有模数的限制,比NTT更加自由,应用广泛,可以用于任意模数或很大的数。 MTT MTT是基于NTT的 阅读全文
posted @ 2019-08-03 20:19 guoshaoyang 阅读(908) 评论(0) 推荐(0) 编辑
摘要: 多项式求逆 定义 设$\displaystyle f(x) =\sum^{n 1}_{k=0}a_kx^k$求$g(x) =\sum^{n 1}_{k=0}b_kx^k$,使得 $\displaystyle f(x)g(x)\equiv 1 (\mod x^n)$ 即$\displaystyle f 阅读全文
posted @ 2019-08-03 19:43 guoshaoyang 阅读(4210) 评论(0) 推荐(2) 编辑
摘要: 区间dp 概述 区间dp没有什么前置技能,思维难度跨度大,可以出现在NOIP或省选的小题里,需要熟练掌握。 区间dp往往用于处理互相嵌套的区间的问题,我们往往可以先把小的区间做好,然后让大的区间直接调用小区间的子问题进行dp 模式 区间断点 已知数列每个元素的代价和合并两个区间的代价,求整个区间的代 阅读全文
posted @ 2019-08-03 19:42 guoshaoyang 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 树形dp 概述 树形dp 一般用于解决树上问题,答案需要可以从子节点转移到父节点,或者相反。通常的实现方式是在dfs 的过程中顺便求出答案。 树形dp一般分为几种:子树大小统计,树上(类)背包和树上距离问题。 树形dp没有什么前置技能,可以出现在NOIP及高阶的比赛中,难度跨度较大。 子树大小统计 阅读全文
posted @ 2019-08-03 19:40 guoshaoyang 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 状压dp 概述 状压dp就是用二进制表示状态,并且对其子集进行归并的动态规划。它基于基本的位运算,常出现在NOIP和省选中。 状压有明显的数据范围暗示,一般在20左右 三进制枚举 有时我们需要先枚举一个子集,再枚举这个子集的一个子集,此时我们经常二进制枚举两层再判断是否包含。这样很直接,但不如三进制 阅读全文
posted @ 2019-08-03 19:40 guoshaoyang 阅读(723) 评论(0) 推荐(0) 编辑
摘要: 悬线法 介绍 悬线法用于找出矩阵中满足特定条件的最大的矩形,例如全1矩阵或交错矩阵,在NOIP以上都可以考。 悬线法的思想很简单,就是记录每个点向上延伸的最大长度,再算出延伸这么长时最左和最右的长度,然后相乘即可。 例如$(3,2)$点向上可以延伸$2$格,向左、右分别可以延伸$2,3$格,最终的面 阅读全文
posted @ 2019-08-03 19:39 guoshaoyang 阅读(932) 评论(0) 推荐(0) 编辑
摘要: 分治FFT 概述 严格的分治FFT为“一般形式”,而我们把所有带有FFT的分治都称为分治FFT,所以这个名称并没有什么意义。 分治FFT代码比较复杂,低阶的比赛里应该不会出现。 一般形式 严格的分治FFT负责解决类似$\displaystyle b_k=\sum^{k 1}_{i=1}{b_ia_{ 阅读全文
posted @ 2019-08-01 14:24 guoshaoyang 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 概述 NOIP的搜索主要考察代码能力,思维难度不高。常用搜索的方法有DFS,BFS和迭代加深。常见优化有剪枝、状态压缩、双向搜索和启发式搜索 基本概念 DFS 适合状态存储不了的情况,相对符合人类的思考习惯(我们只需要考虑当前的子问题) 代码难度相对BFS较为简单 BFS 适合状态容易存储的问题(难 阅读全文
posted @ 2019-07-31 17:27 guoshaoyang 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 线段树区间最大子段和 应用场景 支持单点修改时维护区间的最大字段和 核心思想 利用线段树的分治思想,区间内的子段可以分为完全在左侧的,穿过中点的和完全在右侧的。 实现 维护区间最大字段和基于不带lazy_tag的线段树,只需要将状态由和变为结构体即可。 首先,我们定义一种结构体,包含区间和,从左侧开 阅读全文
posted @ 2019-07-31 17:25 guoshaoyang 阅读(1191) 评论(0) 推荐(0) 编辑
摘要: 数论变换NTT 前置知识 1. FFT:NTT的思想和FFT一样( "FFT介绍" ) 概述 数论变换,即NTT(Number Theory Transformation?),是基于数论域的FFT,一般我们默认FFT为负数域上的快速傅里叶变换,和NTT区分。 我们知道,FFT是利用单位复根的周期性, 阅读全文
posted @ 2019-07-31 16:03 guoshaoyang 阅读(767) 评论(1) 推荐(1) 编辑
摘要: 转载自FlashHu大佬的博客CDQ分治总结(CDQ,树状数组,归并排序),在讲述部分有部分删改,用了自己的代码 CDQ分治的思想 CDQ分治是基于时间的离线分治算法。这一类分治有一个重要的思想——用一个子问题来计算对另一个子问题的贡献。 有了这种思想,就可以在一定的复杂度范围内地解决偏序问题。从一 阅读全文
posted @ 2019-07-23 18:48 guoshaoyang 阅读(477) 评论(0) 推荐(0) 编辑
摘要: 概述 线段树是实用的数据结构,支持所有符合结合律的运算的区间操作。但开方不符合结合律,怎么用线段树维护呢?其实线段树本身无法支持,但还是有方法在有限时间内维护的,就是利用数在经历多次开方后会趋向于统一的性质优化运算。 数据结构 区间开方线段树的思想如上所示,就是利用开方运算的性质,在最初几组数据里暴 阅读全文
posted @ 2019-07-22 20:10 guoshaoyang 阅读(583) 评论(0) 推荐(0) 编辑