多项式学习笔记 1. 快速傅里叶变换(FFT)1.1. 定义傅里叶变换(法语:Transformation de Fourier,英语:Fourier transform,缩写:FT)是一种线性变换,通常定义为一种积分变换。其基本思想是一个函数可以用(可数或不可数,可数的情况对应于傅里叶级数)无穷多个周期函数的线性组合来逼近,从而这些组合系数在保有原函数的几乎全部信息的同时,还直接地反映了该函数的“频域特...
CF580E Kefa and Watch 题解 花了一个半个下午+半个晚上终于调出来了......0. 题面长度为 \(n\) 的字符串,每个字符是 \(\mathtt{0} \sim \mathtt{9}\) 的数位,\(m + k\) 种操作:格式为 1 l r c,表示将 \(l \sim r\) 赋值为 \(c\),保证 \(0 \le c \le 9\)。这种修改操作恰好 \(m\) 个。格式为 2 l r d,表示...
日记,兼水题乱做,兼闲话瞎讲,兼厕纸,还兼了点其他的什么东西 总想写点东西,但是写一篇博文太耗时间了,就写点小玩意罢2023/10/1水题乱做CF1662D一个神秘构造题。首先要注意到操作可逆,还要注意到字母B有特殊性质,更要注意到题目中给的操作可以转化为互换相邻字母A和字母B位置。主要考察注意力CF1662N一个神秘计数题。注意到对于合法矩形有1个点满足相邻点都小于自己,对于非法矩形有2个点满足,利用这一性质即可将对矩形的统计转化为对点的统计...
决策单调性优化DP 学习笔记 & P4767 [IOI2000] 邮局 题解 0. 题面题目描述高速公路旁边有一些村庄。高速公路表示为整数轴,每个村庄的位置用单个整数坐标标识。没有两个在同样地方的村庄。两个位置之间的距离是其整数坐标差的绝对值。邮局将建在一些,但不一定是所有的村庄中。为了建立邮局,应选择他们建造的位置,使每个村庄与其最近的邮局之间的距离总和最小。你要编写一个程序,已知村庄的位置和邮局的数量,计算每个村庄和最近的邮局之间所有距离的最小可能的总和。输...
CSP-S 2022 游记 CSP-S 终于考完了......Day -7 ~ Day -2开始停课了,但是一直在摆烂。Day -1随便打了打板子,还是在摆烂。Day 1上午一直在摆烂。中午一直在看学长们摆烂。No one knows bailan better than me!下午考 CSP,一点也不紧张,反正也没什么预期。前两个小时把 T1 T2 T3 的暴力打上了,又花了一个半小时刚 T1 但...
斜率优化动态规划 学习笔记 首先看这样一个问题:洛谷 P3195 [HNOI2008]玩具装箱题目大意:有 \(n\) 个物品排成一行,第 \(i\) 个物品权值为 \(C_i\) ,现要求将这些物品分成若干段,每段的花费为 \(((\sum_{i=l}^{r}{C_i})-L)^2\) (其中 \(l\),\(r\) 为这一段的左右端点, \(L\) 为给定常数),问最小的总花费.保证 \(1 \leq n \l...
省选游记?省选游寄! 省选结束辣!别问我为什么现在才写游记,问就是懒Day -n因为我太菜了,教练没让我停课/kkDay 0开摆!前一天晚上随便敲了敲板子,突击学习了一下SSH,又吹了半天水就回去睡觉了。Day 1进考场的时候什么心情都没有,反正我选不上。先看了一眼题目,感觉只有 T1 可做(菜死了qaq)。花了一个小时码完随便造了几组数据感觉没问题就run了。T2 想了半天没思路,打了个暴力就跑了...
题解 AcWing 2236. 伊基的故事 I - 道路重建 \(\tt{Acwing题库链接}\)算法 1 (暴力)先对原图跑一遍最大流,再依次增加每条边的容量后重新求最大流,如果增加某条边的容量后最大流变大了,说明它就是关键边。这个智障东西的时间复杂度大概是 \(O(n^2 m^2)\) 的(如果使用 Dinic 求最大流),显然需要优化。算法 2真的需要跑 m 次最大流吗?其实不需要。对原图跑一次最大流之后,我们其实已经获得了一些有用的信...
学习笔记 网络流 1.引入想象这样一个场景:自来水厂和您家分别坐落在城市的两端。自来水厂可以以任意速率生产水,您家可以以任意速率接受水。您家和自来水厂之间有一些中转站和水管,水管有最大流速限制(即每单位时间最多流多少单位水),中转站不能存水,只能输进多少就马上吐出多少。这个东西就是网络流。把这个问题数学化就便乘了这样:假设 \(G(V,E)\) 是一个有限的有向图,它的每条边 \((u,v) \in E\...
题解 洛谷 P1763 埃及分数 这么经典的题目居然这么少人写题解,那么我这个蒟蒻就来写一发 Java 题解罢!由于这道题的搜索树深度无限,所以排除掉深搜;每层能扩展的广度也无限,所以排除广搜。那么,我们就只能使用一种深搜广搜结合的算法——迭代加深搜索。迭代加深搜索就是不断放宽搜索树最大深度的深搜。我们还需要一些剪枝优化。优化1:为了避免重复搜索,我们强制让分母递增。优化2:由于分母递增,那么如果当前搜索的分数过小,在...
主席树/函数式线段树/可持久化线段树 初步 学习笔记 主席树/函数式线段树/可持久化线段树 初步 学习笔记1.什么是主席树?主席树是一种由许多棵 重叠的 值域线段树构成的数据结构,可以维护很多跟值域有关的信息。2.怎么写主席树?先来看一道例题(区间第 \(k\) 小):洛谷P3834 【模板】可持久化线段树 2题目大意:给定 \(n\) 个整数构成的序列 \(a\),将对于指定的闭区间 \([l,r]\) 查询其区间内的第 \(k\)...
*衡树 Treap(树堆) 学习笔记 调了好几个月的 Treap 今天终于调通了,特意写篇博客来纪念一下。0. Treap 的含义及用途在算法竞赛中很多题目要使用二叉搜索树维护信息。然而毒瘤数据可能让二叉搜索树退化成链,这时就需要让二叉搜索树保持*衡,“*衡的”二叉搜索树自然就是“*衡树”啦。“Treap”就是*衡树的一种,由于它易学易写,所以在算法竞赛中很常用。"Treap" 事英文单词 "Tree" 和 "Heap" 的合...
边带权并查集 学习笔记 & 洛谷P1196 [NOI2002] 银河英雄传说 题解 花了2h总算把边带权并查集整明白了qaq1.边带权并查集的用途众所周知,并查集擅长维护与可传递关系有关的信息。然而我们有时会发现并查集所维护的信息不够用,这时“边带权并查集”就应运而生了。2.例题与思路这里通过例题 洛谷P1196 [NOI2002] 银河英雄传说 来介绍边带权并查集的思想。题面请点击链接查看。2.1.暴力拿到这道题我的第一想法就是用链表模拟。对于两艘在同一列的战舰,...
点分治 学习笔记 0. 点分治的用途点分治可以解决树上的关于路径的问题,例如 洛谷P4178 Tree。(题目大意:给定一棵 \(n\) 个节点的树,每条边有边权,求出树上两点距离小于等于 \(k\) 的点对数量)这道题如果使用 \(O(n^2)\) 的暴力算法 显然 会T飞 ,然而之后您就会看到,点分治算法可以在 \(O(n\log^2 n)\) 的时间复杂度内解决它。1.思想顾名思义,点分治使用了分治的...
UVA1619 感觉不错 Feel Good(良好的感觉) 题解 0.题面:给出正整数n和一个(1 <= n <= 100 000)长度的数列,要求找出一个子区间,使这个子区间的数字和乘上子区间中的最小值最大。输出这个最大值与区间的两个端点。1.思路一开始试图使用单调栈,然而在调试一上午无果后愤然打了个分治,然后就过了233根据分治三步法,算法流程分为:1.分解:定义 \(dfs(l,r)\) 为区间 \([l,r]\) 的最优解,\...
[HZOI] 山海经 题解 0.题目大意给出一个序列,每次查询一个区间的最大子段和的端点和值。序列长度 \(n \le 10^{5}\) 。1.思路显然应该使用线段树。题目要求每次求一个区间的最大子段和,那么在线段树节点中应该维护这个节点的最大子段和。然而,只维护最大子段和是无法从子节点合并出父节点的。考虑一个节点,它的最大子段和可能有以下几个来源:|____________________________...