- 博客(183)
- 资源 (1)
- 收藏
- 关注
原创 GESP8级-倍增学习手册2-跳跃与 LCA
st[j][i]表示从i起长度2的一段。本篇换成另一种倍增——up[j][i]表示从i出发、沿着某个确定方向走2步到达的位置,转移式是222。就这一行,撑起了本篇六道题里的五道。
2026-11-09 11:44:54
296
原创 GESP8级-倍增与ST表学习手册1
倍增(binary lifting)不是某个具体算法,而是一种k的通用技巧。它的全部价值来自一句话:如果我能O(1)地知道"从i出发走2步会到哪里、会得到什么信息",那么"走k步"就只需要O(log k)次拼接。本篇是整套手册的地基。22读法建议:先看下面"三个套路"和"为什么倍增能省时间",再逐题推导。代码请自己敲一遍,不要复制。
2026-11-09 11:42:38
323
原创 GESP 八级 · 树的直径学习手册1
形式化定义:树中最长的简单路径长度(边权之和最大)关键点路径必须是"简单"的(不重复经过点)关注长度(边数或边权和)直径可能不唯一,但长度相同识别问题类型求长度/端点 → 模板偏心距/选点 → 在直径上操作合并/重构 → 预处理+枚举计数/统计 → 组合数学+性质常用技巧预处理直径端点距离双指针维护直径上窗口树形DP维护最远距离换根DP求全局信息注意事项负权边只能用树形DP大范围数据用long long注意n=1等边界情况多组数据清空数组定义。
2026-11-09 09:12:18
173
原创 组合计数手册-03-组合进阶
树上 DFS 的关键性质:进入某个孩子的子树后,必须把它走完才可能回来——进去只能原路返回。所以每棵子树在序列里连成一段,不与别的子树交错。于是整个 DFS 序只由两件事决定:起点 sss,以及每个点走子树的先后。反过来,给定序列第一项就是 sss,往后每遇到新点就知道它挂在哪棵子树下,能唯一还原孩子顺序——两边一一对应,数序列即数"起点 + 各点孩子顺序"。对 v≠sv\ne sv=s,deg(v)\deg(v)deg(v) 个邻居里恰有一个是父亲(已访问),其余 deg(v)−1\deg(v)-1
2026-11-02 11:17:44
285
原创 组合计数手册-01-基本原理与基本模型
取mmm个排成一列Anmnn−1⋯n−m1n!n−m!}{(n-m)!取mmm个只关心是哪几个CnmAnmm!n!m!n−m!}=\frac{n!}{m!\,(n-m)!Cnmm!Anmm!n−mn!两者只差一个m!m!m!AnmCnm⋅m!AnmCnm⋅m。
2026-11-02 11:09:26
315
原创 区间覆盖问题 · 简明学习手册3-调度与容量
multisetR记号:区间默认lr,只有 P 用liri。摊位、廊桥、位置这类"同时只能用一次"的东西统一叫。
2026-10-26 21:23:18
227
原创 树状数组 · 信息学学习手册4-树状数组上二分
k:把值域下标上的二分搬进树状数组,一次查询从Olog2n降到Ologn;三道真题把它练成条件反射。
2026-10-23 09:30:17
199
原创 树状数组 · 信息学学习手册2-离散化与逆序对
满足iji<jij且aiaja_i>a_jaiaj的下标对ij(i,j)ij是一个逆序对,计数单位是"对"。上界nn−122nn−1n5×105n5×105时约1.25×10111.25×1011,超int,朴素枚举On2O(n^2)On2必然超时。
2026-10-22 19:33:48
219
原创 树状数组 · 信息学学习手册1-求和3个模板
OlognO(\log n)Ologn下跳x←x−lowbitxx←x−lowbitx把xxx最右边的111变成000(低位全 0,不借位),故次数恰好等于xxx的 popcountTsumxpopcountx≤⌊log2n⌋1OlognTsumxpopcountx≤⌊log2n⌋1Ologn上跳:设lowbitx2klowbitx2。
2026-10-22 19:29:57
285
原创 搜索- 从基础到进阶学习手册4
有些题的枚举空间是指数级的:当 nnn 在 20sim4020\\sim4020sim40 之间时,这个空间太大(240approx1.1times10122^{40}\\approx1.1\\times10^{12}240approx1.1times1012),但又不是无穷大——它只是"大了两三个数量级"。这时候用折半搜索:核心前提:问题能写成"两半各自的信息 +++ 一个可合并的运算"。常见的信息与合并方式:复杂度对比(这就是折半搜索的全部价值):与"双向 BFS"的区别(容易混):识别信号(看到这些就
2026-10-19 08:54:45
114
原创 搜索- 从基础到进阶学习手册2
洪水填充(flood fill):从一个格子出发,把"能走到"的格子全部染上同一种颜色。它是网格搜索里最基础、也最常被考的一类。题目通常会在这三个问题上做变化:复杂度:每块只搜一遍 RightarrowO(HW)\\Rightarrow O(HW)RightarrowO(HW);每次询问 O(1)O(1)O(1)。套路固定:这一步的价值:把"每次询问都要搜一遍"变成"预处理一次,询问 O(1)O(1)O(1)"。B 题正是靠它把 O(n2m)O(n^2m)O(n2m) 降到 O(n2+m)O(n^2+m
2026-10-19 08:49:20
257
原创 区间 DP 普及转提高复习手册
dp[l][r]:把链上第l颗到第r颗珠子合并成一颗珠子时,所能释放的最大能量。为什么这样定义?每次操作都是相邻两颗合并成一颗,最终把一整段合并成一颗。最后一次合并一定在某个位置把区间分成左右两段,所以区间答案只取决于这段区间。dp[l][r]:若区间[l,r]能经过若干次合并变成一个数,则记录这个数的值;若不能,则为0。题中数均为正,所以0可作“不可行”标记。。任何规范序列最左端一定是,最右端一定是。块:最外层是一对互相匹配的括号,形如(X)。序列。
2026-09-23 17:49:29
266
原创 【基础dp复习-线性、坐标、前后缀优化】-DS
作弊者从 A 中取出一个子序列 S、从 B 中取出一个子序列 T(两者长度相同,均为 LCS 式配对:S 与 T 逐位对应,S 是 A 的子序列、T 是 B 的子序列),定义其“收益”为 4·LCS(S,T) − |S| − |T|。② 单点序列 [0] 归入 f[1](MEX=1)、单点 [1] 归入 g[0](MEX=0、缺口),两者都由哨兵 f[0]=1 产生,别漏掉起点;f[i-1][j][1] + max(0, a[i]-a[i-1]+1) ) // i 是 i-1 的右邻。
2026-09-11 14:46:40
186
原创 【基础dp复习-线性、坐标、前后缀优化】-COZE
奶牛贝茜进行n分钟晨跑,每分钟可选择跑步或休息。跑步时疲劳度+1且获得相应距离,休息时疲劳度-1但必须休息到疲劳度为0才能再次跑步。求最大跑步距离。
2026-09-11 14:00:25
134
原创 【背包 DP 进阶复习手册】
aₚ) 为 k 级 LCA 元组,当且仅当:存在某个 x,使得从中任取 k 个元素,它们的 LCA 都等于 x。令 k 在组内序号为 q,t 对应序号差,则比较值 g[q−t] − (q−t)·v 只与位置有关——维护一个长度 c+1 的滑动窗口最大值即可,每组 O(V/w)。重复操作:取走某点 x 的一个棋子,然后可在 x 的邻点中选一个集合 S(可空),要求。组内游戏是"买了主机后随便买几款",所以是组内 01 背包而不是至多选一件——用独立数组 dp 转移,再和"不买平台"的 f 取 max。
2026-09-02 09:29:55
382
原创 第四届挑战赛二轮题解
本题考场字符串或者数组,直接模拟即可,判断每一个位置和它的后两个位置是否都是o即可,不需要判断边界条件,因为最后一个字符后面的都是空的,也不会满足条件,注意在查到输出Yes后要结束,如果没结束就是没找到,输出No。
2025-12-07 18:09:14
989
1
原创 潍坊一中第四届编程挑战赛(初赛)题解
如果能一次性满足需求,就只加上需要的模仿者数量,否则,需要使用这个吃货对应的全部模仿者,将他们的食量加入已填补量,继续考虑下一个食量稍小的吃货。那么一个长度为n的01串,有恰好3个相邻字符不同的位置,这个字符串将被分成4段,每段内部字符相同,相邻段字符不同。根据题意,红灯之后是绿灯,绿灯之后是红灯,不允许连续出现相同颜色的灯,且每次在红绿间切换的间隔都要以黄灯为警示。:为了用最少的人数,优先选择食量大的吃货来模仿,因为一个大食量的救援队员可以顶多个小食量的救援队员。当 n 是 1 时,不用切,输出 0。
2025-12-05 21:32:49
1898
1
原创 潍坊一中第二届挑战赛题解
每次对应可以用桶排序,根据鸽巢原理,在n大的情况下,桶内数据可能是多个,可以多组数据一起对应。A桶从小到大,B桶从大到小,匹配求最大值即可。从数据来看,光标的移动只需要向下和向右。为了简化问题,我们把对称的。最大值并不出现在左右端点,可能出现在中间。我们可以只枚举正整数 $x,y $其他负数的解也顺便出来了。有的同学用贪心,用最小的和最大的匹配,这是错误的。本题中,用不同的数据类型,得到不同的分数。从大到小排序,依次对应,使得最大值最小。本题考察循环的应用与基本表达式。的点,设我们横坐标移动的距离为。
2025-12-05 10:21:40
1173
原创 潍坊一中第三届挑战赛题解
如果连通,连通块中包含的格式数要减少 $s$ 个,原来有 $ t $ 个,现在需要有 $t-s$个。我们求集合 $A$ 的补集 $A'$,就是不包含字符'A'的集合,也就是每个位置其他 $25$ 个字符可选,$|A'|=25^n$。所以我们尽量的让 $a_1$ 和 $b_2$ 匹配,$a_2$ 和 $b_3$ 匹配,$a_3$ 和 $b_1$ 匹配。因此尽量让剩下的 $a_1$ 和 $b_1$,$a_2$ 和 $b_2$,$a_3$ 和 $b_3$ 匹配。初始状态为 $f[0][0]=1$。
2025-12-05 10:17:26
586
原创 Millionaire-白书-概率dp
学了,记录下你被邀请到某个电视节目中去玩下面这个游戏。一开始你有x元钱,接着进行m轮赌博,每一轮,可以将所持的任意一部分作为赌注,赌注不光可以是整数,也可以是小数,一分钱不押或全押都没有关系,每一轮都有p的概率可以赢,赢了赌注就好翻倍,输了赌注就没了,如果你最后有100万以上的钱的话,就可以把钱带回家。请计算当你采取最优策略时,获得100万以上的钱并带回家的概率。 0<=p<=1.0,1<=1<=1000000,1<=m<=15 样例输入: M,p, x 输入 :1
2021-03-16 11:23:04
485
原创 牛客-小l的数列-dp+素数
https://ac.now链接:https://ac.nowcoder.com/acm/problem/218035来源:牛客网2.对于任意的i(1≤i<m)i (1 \leq i <m)i(1≤i<m),满足 gcd(bi,bi+1)>1gcd(b_i,b_{i+1})>1gcd(bi,bi+1)>1。其中,gcd(x,y)gcd(x,y)gcd(x,y)为xxx和yyy的最大公因数,即最大的ddd,满足:d∣xd|xd∣x且d∣yd|yd∣y。...
2021-03-08 09:04:40
284
原创 CF1370C Number Game——博弈论
题目大意:有一个正整数 n。两名玩家轮流操作。每次操作可以执行以下一种:将 n 除以一个 n的奇数因子。将 n 减去 11。问先手是否有必胜策略。如果先手有必胜策略,输出 Ashishgup,否则输出 FastestFinger。题目分析:原则:拿到1的会输掉。直观分析可以得到:1.当A拿到2或奇数的时候必赢,因为2-1或奇数/奇数都使得对方得到1.在此基础上继续分析其他数值: 设ppp为奇质数1-1. 如果一个数是2∗p2*p2∗p,那么A只能执行/奇数操作,对方拿到2,对方必赢,
2020-07-05 17:43:37
500
1
原创 CF1369D 【TediousLee】--递推
这个题目画图思考后当然是递归或者递推啦! 对于层数为n的树,根节点的三个子节点中,左右子树为n-2,中间子树为n-1; 所以初步递推为f(n)=f(n-1)+2*f(n-2); 这个代码写完后发现是错的,错在哪里呢?当根节点为3的倍数时候,根节点与其三个子节点可以染色形成一组claw。递推的初值为: f[0]=f[1]=f[2]=0因此递推的式子为:f(n)=f(n-1)+2*f(n-2) n%3!=0f(n)=f(n-1)+2*f(n-2)+4 n%3==0#include&
2020-07-05 16:36:46
274
原创 CF1354C1/C2 Simple/Not So Simple Polygon Embedding---几何+三角函数
CF的连个题目,C1是求边数为4k的正多变形的外接正方形的边长,C2是求边数为4K+2的正多边形的外接正方形的边长。C1可以发现,有4条边与外接正方形重合,那么找出对应的角,再利用三角函数求解。c++提供sin(),cos(),tan()函数,也提供对应的反三角函数acos反余弦函数,asin反正弦函数,atan反正切函数。#include<bits/stdc++.h>#define pi 3.1415926535using namespace std;int t,n;//一
2020-06-18 16:22:40
311
原创 P6283 [USACO20OPEN]The Moo Particle S——单调栈或前后缀
题目来源: P6283 [USACO20OPEN]The Moo Particle S题目大意:给出一推坐标,连个点之间连线的斜率>=0即可合并到两点间的任意一个点上,问合并完,最后剩的点的最小个数。先将坐标按照第一关键字X,第二关键字Y排序。排序后,我们发现,一个点要与左边的点连通,需要左边有点的y值比当前点小,有右边的点连通,需要右边有点当前的y值大。方法一:维护从左到右的最小值,维护从右到左的最大值,找到与左右分离的点,则是一个新的连通块。方法二:我们发现最后分离的点,从左到右y值由小
2020-06-12 16:36:03
389
原创 P6583 回首过去--整数分块
题目来源:P6583 回首过去.根据样例分析,可以xy\frac xyyx是有限小数的条件是分母只能包含因子2和5,直觉证明,整数在进行除法的过程中,如果需要去补0,则相当于*10,而10只包含因子2和5,所以出现其他因子就不是有限循环小数。40分 n*n暴力不解释o(n)符合条件的xy\frac xyyx可以分解为XY2p5qX\frac{XY}{2^p5^qX}2p5qXXY其中KaTeX parse error: Expected '}', got 'EOF' at end of in
2020-06-06 20:26:51
327
原创 整除分块
例题1求 ∑1nni ,n<=1012.\ \sum_1^n \frac{n}{i}\,,n<=10^{12}. ∑1nin,n<=1012.题目链接.数据范围小跑o(n)当然没问题,数据范围这么大就要另想办法。打表观察下,设n=201 2 3 4 5 6 7 8 9 10 11 12 13…2020 10 6 5 4 3 2 2 2 2 1 1 1 1我们发现n/i的值有某些段是重复的
2020-06-06 15:36:54
559
原创 P6146 [USACO20FEB]Help Yourself G--动态规划+集合+前缀和
题目来源先考虑的是转成树或者图,好麻烦。然后考虑的是类似线段覆盖的的处理,要分包含或连接、分离等情况,分离情况的处理理不清楚,借助了题解。将线段按照左端点排序,设到第i条线段 构成的时间复杂度为f[i].那么包含的情况包括1.不包含这条线段,那么为f[i-1];2.包含这条线段又分两种情况 增加的集合个数为f[i-1]2-1.增加了集合个数,但这个集合的复杂度与前面一样,所有增加的集合已经包含在前面的f[i-1]内2-2.增加了集合个数,同时复杂度增加。这种情况下,与前面的线段分离会增使其复
2020-05-27 11:20:43
281
用photoshop制作海报实例教程
2011-06-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅