有趣题目和认知合集(持续更新)

精品免费软件的可持续更新机制与实践指南 免费软件并非零成本,其真实代价体现为时间负债、安全折损与系统兼容断层。理解‘可更新性’这一核心概念,需从开源协议类型(如MIT/Apache)、作者维护活跃度(GitHub stars增长与issue响应时效)等底层原理切入。技术价值在于构建可信、可验证、可自动化的更新管道,从而保障长期稳定性与安全性。典型应用场景包括开发者工具链管理、企业内网离线部署及Windows大版本升级前的兼容性预检。本文聚焦于如何通过源识别、哈希校验、CI/CD验证与包管理集成,实现精品软件的可持续演进。 阅读详情

写写对一些算法的理解,挂几个有意思的题,可能也会挂几个板子题
算法理解偏向于能懂即可,没有严格的证明

快乐几何

[1.2]Volatile Kite 点到直线

快乐搜与暴力

[2.4]Short Code
[2.4]D. Police Stations
[2.5]F. Two Pizzas
[2.5]Tree and Permutation n个点全排列,每个排列A有一个贡献,为 A 1 到 A 2 的 路 径 价 值 + A 2 到 A 3 的 路 径 价 值 + . . . A_1到A_2的路径价值+A_2到A_3的路径价值+... A1​到A2​的路径价值+A2​到A3​的路径价值+...
[2.5]E. Pursuit For Artifacts
[2.7]K TV Show Game
[2.9]E. Broken Tree
[3.6]J Starwars

不快乐数论

矩阵快速幂

本质上是计算矩阵的次幂,由于发现矩阵的乘法可以实现式子的递推,所以矩阵快速幂可以实现式子的转移,甚至是图上的转移
[2.7]E. Product Oriented Recurrence
[3.0]bzoj2973石头游戏

各种欧拉

[2.0]E. The Holmes Children
[3.0]E. Vulnerable Kerbals奇怪的数学构造

康拓展开

算某个排列是第几大(从0开始),或者算第x大的是谁,反着做就是逆康拓展开
x = a 1 ( n − 1 ) ! + a 2 ( n − 2 ) ! + . . . + a n 0 ! x=a_1(n-1)!+a_2(n-2)!+...+a_n0! x=a1​(n−1)!+a2​(n−2)!+...+an​0!
这个只能做到 n l o g n nlogn nlogn
[1.0]康托展开板子

博弈:

很有意思的一类题目,做法基本上就是打表找规律或者用DP或dfs或找规律来搞sg函数,不过sg函数有时候有效值仅为0,1,这样的原因是从必败态走出来的必定是必胜态了,那么似乎只要判断转移的情况有没有必败就行了,sg函数在哪里有用呢?就是Nim博弈的推广,转移出多个状态时,结果和多个堆的值的异或值有关
sg[0]=0时表示先手必败
其实算sg[x]其实是一个dp的过程,枚举每个转移的sg值,然后寻找mex,就是sg[x]的值了。
同时进行多个游戏,则结果是各个sg的异或值
[2.2]C. Berzerk

BSGS

用来算高次剩余 a x ≡ b ( m o d p ) a^x\equiv b\pmod p ax≡b(modp),当a,p互质的时候,可以在模意义下使用乘除,所以 a i ∗ x − j ≡ b ( m o d p ) a^{i*\sqrt{x}-j}\equiv b\pmod p ai∗x ​−j≡b(modp),也就是 a i ∗ x ≡ b ∗ a j ( m o d p ) a^{i*\sqrt{x}}\equiv b*a^j\pmod p ai∗x ​≡b∗aj(modp),这样提前枚举 b ∗ a j b*a^j b∗aj,利用map记录,然后再枚举i,计算是否存在等于的情况,复杂度 O ( p ) O(\sqrt{p}) O(p ​)
[1.1][SDOI2011]计算器
当a,p不互质的时候,不能直接使用乘除。那么首先可以将等式变成 a x + k p = b a^{x}+kp=b ax+kp=b,为了能够使用乘除,我们可以不停对 a , p a,p a,p取gcd,让等式去除,也就是 a c d ∗ a x − c + k ∗ p d = b d \frac{a^c}{d}*a^{x-c}+k*{\frac{p}{d}}=\frac{b}{d} dac​∗ax−c+k∗dp​=db​,如果b不能整除d,就无解。这样这个等式在模 p d \frac{p}{d} dp​的情况下成立,同时a与p互质,也就是说等式便成了 a c d a x − c ≡ b d ( m o d p d ) \frac{a_c}{d}a^{x-c}\equiv \frac{b}{d}\pmod{\frac{p}{d}} dac​​ax−c≡db​(moddp​),这个和原版的bsgs没有差别了,剩下就是一样的步骤了
[1.0]Power Modulo Inverted

01分数规划

其实这个和数学也没啥关系,暂时放这里了
这个写挺好
简单复读下
首先求的是这样的一个问题,和01背包有点类似,但是是这样的,一些物品,每个物品有一个价值 a i a_i ai​一个代价 b i b_i bi​,选择了一个物品就会得到价值失去代价,最后要选出一些物品,使得 选 择 物 品 的 价 值 选 择 物 品 的 代 价 \frac{选择物品的价值}{选择物品的代价} 选择物品的代价选择物品的价值​最大

假设,最优的选择用 x x x数组表示, x i x_i xi​为0表示每选,为1表示选了,那么答案可以表示为 ∑ a i x i ∑ b i x i \frac{\sum a_i x_i}{\sum b_i x_i} ∑bi​xi​∑ai​xi​​,设值为R
设 f ( L ) = ∑ a i x i ∑ b i x i f(L)=\frac{\sum a_i x_i}{\sum b_i x_i} f(L)=∑bi​xi​∑ai​xi​​,那么 ∑ a i x i − L ∑ b i x i = ∑ ( a i − L b i ) x i {\sum a_i x_i}-L{\sum b_i x_i}={\sum (a_i -Lb_i)x_i} ∑ai​xi​−L∑bi​xi​=∑(ai​−Lbi​)xi​,我们二分这个L,如果总值大于0,则 ∑ a i x i ∑ b i x i > L \frac{\sum a_i x_i}{\sum b_i x_i}>L ∑bi​xi​∑ai​xi​​>L,意味着有更优的值,然后就这样二分就行了

乱搞:

()E. Timofey and remoduling

莫比乌斯函数和莫比乌斯反演:

μ ( 1 ) { 1 , x = 1 0 , x 的 某 个 质 因 子 次 幂 大 于 等 于 2 1 , 次 幂 和 为 奇 数 − 1 , 次 幂 和 为 偶 数 \mu(1)\begin{cases}1,x=1\\0,x的某个质因子次幂大于等于2\\1,次幂和为奇数\\-1,次幂和为偶数\end{cases} μ(1)⎩⎪⎪⎪⎨⎪⎪⎪⎧​1,x=10,x的某个质因子次幂大于等于21,次幂和为奇数−1,次幂和为偶数​
这就是莫比乌斯函数,偶尔容斥的时候能够用到bzoj2440
QQQ的ppt
反演就的作用,主要是在难以直接求出的时候,使用反演得到一个便于求解的类似前缀形式,就是利用倍数什么的来求,同时在变换中会出现换常量,很容易出现利用除法来加速

分治

快乐码农

线段树

[2.1]E. Sasha and Array矩阵快速幂+线段树
[2.8]Dirt Ratio二分+线段树
[2.9]E. Serge and Dining Room
[3.0]D. Legacy线段树优化建图
[3.1]E. Memory and Casinos 每个点有个胜率,赢了前进,输了后退,有修改有询问,问从l开始,赢出r的概率
[3.1]E. Nikita and stack
[3.3]Alyona and towers
[3.5]F. Souvenirs 线段树主席树(回滚)莫队都能写

主席树

带有各个阶段的线段树的一种数据结构,原理是,当线段树从最左开始建树,到达第i个的时候,和第i-1个其实只相差了logn个点,那么动态开点,就能在 n l o g n nlogn nlogn的空间建出主席树了
但是其实主席树建立的方式非常灵活,因为本身就是由线段树转换来的,所以其实各种乱搞,例如可以倒着插入来使得可以正着向后推,例如可以维护区间某个值出现最右的值(这两种情况下主席树就不用root[r]-root[l-1]了)
[2.4]E. Till I Collapse可类似分治乱搞
[2.6][TJOI2018]xor树上可持久化tire
[2.7][Scoi2016]美味和异或最大值,很有意思
[2.7] [NOI2010]超级钢琴长度为[L,R]的区间和的前k大,有点意思
[2.8]E. Sign on Fence区间合并+按大小插入
[3.0][BZOJ5361]]如何寻找L,R中出现偶数次最小的数,做法是随机一个ull的数,然后用主席树维护异或值(同理的题目#192. 【UR #14】最强跳蚤)

转转乐

能不写splay就尽量别写,因为一方面难写容易错,一方面常数大容易被卡。
set、与线段树、treap能在很多情况代替splay
首先,splay只能的关键值只能维护一个,所以无法同时维护下标和权值,这就导致splay很多情况无可奈何。
本质上就是通过splay操作来保证复杂度的二叉树,理解下会发现常数极大。
[3.2][APIO2015]八邻旁之桥可线段树可splay,都不是很好写

码码乐

树图一家亲

最短路

dijkstra:无法处理负边,做法是选一个起点,然后不断选出距离最小的更新其他点,因为距离最小的点无法由其他点更新到
folyd:k一定要放在最外层,这个相当于dp,但是状态表示的的是,经过前k个点,能经历的最短路,能够用于传递闭包
SPFA:一个点的答案发生了更新,就意味着这个点延伸出的点可能更新答案
[1.6]Sorting It All Out //闭包
[2.3]Telephone Lines
[2.6]Drivers Dissatisfaction
[2.7]Meeting类似线段树优化建图那样建图
[3.2]Lazy Running神奇的最短路

DSU

[2.3]The Door Problem
[2.8]Phone Call莫名其妙写不对

我最喜欢的环节

[2.3]Matching In Multiplication

SCC DCC

(割点桥均为无向图)
割点:删去节点x以及x关联的边后,原联通图分裂成两个或两个以上的子图
桥:删去边e以后,原联通图分裂城两个不相连子图
求法就是dfs一次,新开一个low数组,low数组会因为回溯而更新自己的值
桥:dfn[x]<low[y] 割点:dfn[x]<=low[y],对于起始点要两个

e-DCC无桥,同理。求法:不加桥地建图即可
求法就是删去所有桥,缩点就重新建图就行
v-DCC无割点,意思就是两个点至少有两条路径到达
求法就是利用栈去求,因为点不能被割开,所以一个点可能会属于很多点,缩点后形成p+t个点的树(森林),p为点双联通分量,t为割点数量

SCC:对于有向图,任意两点能互相到达,则为强联通。求法与DCC相似,都是用dfn与low来判断状态,同时用栈维护元素

能DFS解决就别缩点!!!

[2.0]E. Pursuit For Artifacts
[2.1]Network
[2.2]Knights of the Round Table
[2.4]Intelligence SystemSCC+简化朱刘
[2.4]F. Tourist Reform
[2.6]The war数据不保证图联通
[2.7]Railway 有点奇怪的点双,点双中判桥
[3.0]FantasiaSCC+乱搞

欧拉路

存在欧拉路:恰好两个点度数奇数,其他均为偶数
欧拉图:无向图联通且度数均为偶数
输出路径是利用栈来模拟这个过程,同时标记跑过的边一边跑一边存储答案

2-SAT

解决的问题:一堆点,每个点有两种状态,0或1,有一堆条件,可抽象为:若i为x,则j为y,(x,y为0,1)求是否存在一种合法赋值满足所有条件
该问题可以开2n个点,前n个表示取0时候的情况,后n个表示1的情况。对于每个条件,可以建立一对有向边。如若i为0,则j为0,那么可以建一条从i到j的边,同时根据逆否命题,可以建立j+n到i+n的边。那么如果2-SAT存在解,则该图求出强联通时,任意i与i+n不在一个强联通中。同时,一个强联通中的点都处于同一种状态。
求一个2-sat的可行解,相当于在这个图中取出一个子图,使得i与i+n恰好有一个被选中,且被选中的点的所有出边指向的点也都被选中。如果在强联通中选择一个点,则会使得很多点也同时被选中,这样可能产生冲突。所以可以建立反边,跟拓扑排序一样选点,如果这个点没有选过,就选择这个点,否则就不选。这么做是因为建立反边以后,入度为0的点意味值不会跟已选择的任何点冲突,也就是说不会产生任何错误。

二分图

点可以划分为两个集合,同一集合内的点没有连线,就是二分图
判定:暴力染色判有没有长度为奇数的环
最大匹配:任意两边没有公共端点为匹配,边数最多为最大匹配
匈牙利算法:寻找增广路,就是从一个点出发,发现一条路径,也就是路径上的边满足:沒选,选了,沒选…沒选,选了。那么将这条路径上的边取反,就能多一条边(原来匹配的点还是匹配的,多了俩个以前没有被匹配的点)。每次从左集合的一个点出发来寻找增广路,找到了就能加一条边,
复杂度 O ( n m ) O(nm) O(nm)
完备匹配,左右集合点数均为n个点,最大匹配n条边
多重匹配,每个点可以连多条边,解法:拆点,每个点多遍历几次,网络流
带权最大匹配,每条边一个权值,求一个最大匹配,使得匹配边权值和最大,前提是匹配数最大。
KM算法,只能当“带权最大匹配一定是完备匹配”才能用。做法就是将左边右边的点都赋一个值,假设为 a i a_i ai​, b j b_j bj​,满足 a i + b j ≥ w ( i , j ) a_i+b_j \geq w(i,j) ai​+bj​≥w(i,j)
相等子图,二分图所有节点和满足 a i + b j = w ( i , j ) a_i+b_j=w(i,j) ai​+bj​=w(i,j)构成的子图为二分图的相等子图
若相等子图有完备匹配,则这个完备匹配就是原二分图的带权最大匹配
KM算法核心就是,利用贪心思想,一点一点加边。一开始将 a i a_i ai​赋值为 max ⁡ j = 1 n w ( i , j ) \max\limits_{j=1}^{n}w_(i,j) j=1maxn​w(​i,j), b j b_j bj​为0。只有当 a i + b j = w ( i , j ) a_i+b_j=w(i,j) ai​+bj​=w(i,j)才选中这个边,那么一开始每个点选的都是最大的边,当发生冲突时,我们让每个搜到的边(包括匹配的和沒匹配的,其实就是搜索树中的)减去 min ⁡ a i + b j − w ( i , j \min{a_i+b_j-w(i,j} minai​+bj​−w(i,j,这样我们每次贪心都能保证是将尽可能大的边放入,其他的就和km算法思路相同,不停取反即可。
为什么只能解决完备匹配呢?因为这个算法本质上是个贪心,而这个贪心是基于每个点最终都有一个边与它相连

不会建图(网络流)

核心是建立反边,正是因为反边,所以才能保证正确性
最大流:
EK:每次寻找一条增广路,然后更新,复杂度 O ( n m 2 ) O(nm^2) O(nm2)
DINIC:EK每次只找一条增广路,有优化空间,DINIC每次先在图上BFS,给每个点打一个步数标记,然后在残余网络中DFS,复杂度 O ( n 2 m ) O(n^2m) O(n2m),虽然不会证明,但是感觉上和实际上都是DINIC更难达到上限,甚至 1 0 5 10^5 105的图都能跑(DINIC跑二分图最大匹配复杂度是 O m n Om\sqrt{n} Omn ​)
ISAP是DINIC的进一步优化,也不长,推荐使用
HLPP:最快的写法
费用流:
EK:将dfs寻找增广路改为spfa寻找增广路(寻找单位费用和最小的路),因为有负权边,所以是spfa

如果存在拆点,可以多跑几次来代替拆点,因为拆点会导致点的个数成倍增长,因为网络流复杂度是 O ( n 2 m ) O(n^2m) O(n2m)导致拆点增加的复杂度是成倍增加的

如果最小割要输出方案,那么只需要利用d数组就能输出方案,因为d[i]!=0证明i点属于s的点集中,那么只要一条边一端d[i]!=0另一端d[i]==0即可,而最大权闭合子图中,只要d[i]!=0就是在一端中
最大流输出方案还是按照e[i].c ==0来判断的
更新 其实上面对于割集的构造方法,主要利用了最后一次bfs后,图无法联通所构建的,而这样一端能到达,一端无法到达的边组成的集合一定是一个最小割。
可是如果有时候需要构建最小字典序的最小割,就不能这样了,事实上,在跑完网络流后,一条边的两端无法到达,就也可以成为最小割边集中的边。那么选择完这条边,剩下的可以手动将边变回原流量(除了选择过的边),然后继续跑网络流即可。

对于无向图跑网络流,可以add(a,b,c) , add(b,a,c)也就是正反都建立一次,虽然表面上看起来流量变成了2*c,但实际上由于是正反的关系,所以也是有抵消的效果,所以这么建是正确的

[1.3]Minimum Cost拆点复杂度
[2.1][CQOI2009]跳舞拆点是常见的操作
[2.1][HNOI2007]紧急疏散EVACUATE套路套路
[2.4]Marriage Match IV计算完全没有交集的最短路个数
[2.5][CQOI2012]交换棋子
[2.6]happiness 最小割的套路
[2.6]圈地计划和上面哪个题一样
[2.7]Tachibana Kanade And Dream City网络流总能和floyd产生交错
[2.7][CQOI2014]危桥网络流总是能给人惊喜
[3.0]Give out candies不等式类建图+取反值求最小割
[3.2]「雅礼集训 2017 Day8」价神奇的最大权闭合子图转换+一些限定
[3.3][CTSC2008]祭祀 Dilworth 定理:最小链覆盖数 = 最长反链长度,第二问的构造不太会,第三问很有意思

上下界网络流

就是每条边有一个下界一个上界,只有每条边都满足这个要求,且每个点出入流相等,满足这样条件的就是可行流。

无源汇判断有无可行流,我们把每个点进入的流的和-出去的流的和,即 ∑ u ∈ V c ( u , i ) − ∑ v ∈ V c ( i , v ) \sum\limits_{u\in V}c(u,i)-\sum\limits_{v\in V}c(i,v) u∈V∑​c(u,i)−v∈V∑​c(i,v),然后建立额外源点 s s s汇点 t t t,如果这个值大于0,那么我们连接 s s s和i,流量为差值,否则则连接 i i i和 t t t,流量为差值的相反数。然后跑一个最大流,如果最大流等于s的出边的流量之和,就是有可行流。
为什么这么建图?这么建边的实际意义就是所有边一起消除下界,但是如果入的多,我们就利用源点来跑网络流,用消去下界的边去抵消掉这额外的入流,同理,出的多,也是利用消去下界的边消去额外的出流。也就是说,跑完这个网络流后,原图的边可能流量已经发生了变化,用作抵消下界了。

有源汇判断有无可行流,将S到T连接一条无限流量的边,其他完全一样。
为什么这么建图?有源汇相较于无源汇。唯一的区别就是源点出流无限,入点入流无限,那么我们将T到S连一条边,整个图就变成了之前的问题,那么接下来一样就理所当然了。
注上面求出的流量只是可行流,不一定是最大也不一定是最小,且流量为T到S的反向流,也很好理解,因为本来S,T是源汇点

有源汇最大流,先和上面一样建图,先判断是否有可行流。然后用S和T再跑一次最大流,答案就是这个最大流。还有一种写法是判断有可行流后,统计流量,拆掉S,T后加的边,然后跑最大流,答案为两个流量之和。
为什么答案是这样?因为之前的为了消除下界,已经消耗了一些流量,这些流量也是需要统计进答案的,而T到S的反边恰好就帮我们完成了这个统计,所以再跑一次最大流就是答案。删边再跑其实原理一样,只不过分开做了而已。

有源汇最小流,和有源汇判断有无可行流一样建图,然后跑最大流,然后连T到S的边,流量inf,然后跑最大流,如果两次流量和不等于额外源点的出流和,则无可行流,否则答案则为T到S的反边
为什么答案是这样?这个思路和之前不一样的地方在于,我们优先使用里面的边的流量,最后再由源汇点提供额外的流量,这样就保证了尽可能的小

和最大流比较的话,就是一个优先利用自己源汇的,一个优先利用其他边的

有源汇费用流,首先建立额外源点汇点,对于原图中的边x->y,若限制为[b,c],费用为cost,那么连边x->y,流量为c-b,费用为cost,其余和之前相同,费用为0,然后跑费用流即可,答案为费用流跑出的结果+原图每个边的下界 ∗ * ∗费用
为什么答案是这样?保证了可行流的情况下跑费用流
注意:有上下界的费用流指的是在满足流量限制条件和流量平衡条件的情况下满足流量限制条件和流量平衡条件的情况下的最小费用流 ,而不是而不是在满足流量限制条件和流量平衡条件并且满足最大流最大流的情况下的最小费用流

[1.0]194. Reactor Cooling无源汇可行流板子
[1.0]176. Flow construction有源汇最小流板子
[1.0]有源汇有上下界最小流有源汇有上下界最小流板子
[1.0]有源汇有上下界最大流有源汇有上下界最大流板子
[1.3] [AHOI2014/JSOI2014]支线剧情上下界费用流
[1.3]士兵占领 有源汇最小流,也可以最大流写
[1.3]Shoot the Bullet 有源汇上下界最大流
[1.4]80人环游世界再次感受神奇的上下界费用流
[1.6] FJ2014集训 XWW的难题 很套路的上下界费用流
[2.0]清理雪道手动加源汇的最小流,最少几条路径覆盖所有边

最小割树

定义一棵树T为最小割树,如果对于树上的所有边(s,t),树上去掉(s,t)后产生的两个集合恰好是原图上(s,t)的最小割把原图分成的两个集合,且边(u,v)的权值等于原图上(u,v)的最小割
原图上u,v两点最小割就是最小割树上u到v的路径上权值最小的边
建立最小割树的常用算法就是Gomory-Hu Tree
简单来说就是不停的跑最大流,每次割边会让点集分成两个,跑得时候让所有边回到最初状态
由于每次都是暴力,所以复杂度 O ( n 3 m ) O(n^3m) O(n3m),不过一般达不到上限
[1.0]模板】最小割树
[1.0][ZJOI2011]最小割
[1.0] [CQOI2016]不同的最小割

支配树

一个图,规定一个起点,对于点w,如果删去点v,使得起点无法到达w,则称v支配w。每个点都求出一个最近支配点,把这个点当作自己的父节点,形成一颗树,称为支配树。
能解决的问题:求某个点到其他点的必经点集
构造方法:
对于一颗树,显然就是支配树
对于DAG:因为无环,所以很好求支配树。首先拓扑排序,对于一个点,找出所有入边所连接的点的lca,这个点就是它的支配点,复杂度 O ( n l o g n ) O(nlogn) O(nlogn)。
对于非DAG:有了环,就无法根据这个来判断了。首先定义一个半支配点,当x能够到达y,且路径上所有的点的dfs序均大于y的dfs序,则最小的x就是y的半支配点。
这个半支配点是用来寻找真正的最近支配点所用的,很容易发现,一个点的最近支配点就是自身的半支配点或者是祖先的半支配点。也就是说:半支配点是有成为支配点可能的点。
然后就是利用半支配点求支配点了。这个有很多证明。不过证明这东西,只是证明了这个是对的,却不会告诉你为啥要这么想。到头来看了半天证明发现还是套板子就行了。
顺便一提,割点与是否支配无关系,是割点也可能无法支配某个点。
支配树点个数不一定是n个
[1.2]CodeChef - GRAPHCNT
[2.3]F. Team Rocket Rises Again

树上差分

正常差分是正着写,树上正着写会导致多余的点也被染色,所以可以反向染色,这样回溯的时候再把值加上即可
[1.8]Alyona and a tree

dsu on tree(启发式合并)

需离线,处理子树问题,通过轻重链剖分来稳定复杂度的暴力。
具体操作,首先存下询问,然后预处理出重儿子,然后dfs,dfs时候,先暴力统计轻儿子的答案(轻儿子的东西会被清楚),然后暴力统计重儿子的答案(重儿子的答案保留),然后再遍历一次轻儿子,然后统计自己的答案,然后根据自己是轻儿子还是重儿子来决定要不要清空自己

[1.2]E. Blood Cousins 森林中求某个点深度为x的孩子个数
[1.2]F - Dominant Indices子树哪层最多
[2.2]D. Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths 边有字符,树上路径的字符某种排列为回文的串为所求,问子树中最长的这种串
(和E. Palindromes in a Tree好像,不过一个是统计点,一个统计子树。导致一个是点分治一个启发式合并)
[3.4]F. Peterson Polyglot树合并(自带启发式)

树分治

做法就是不断找重心,然后dfs,然后统计答案,然后删去这个点,重复上面过程。
因为是重心,所以保证了复杂度
[1.6]聪聪可可
[2.4]快递员有趣
[2.4]曼哈顿计划ESG
[2.6]E. Digit Tree
[3.0]树上游戏

动态点分治

能够处理的是将某个点x距离y以内的点加减一个值。
其实这个算法不应该叫动态点分治,更应该叫点分树,甚至说跟点分值也没啥关系。因为本质上就是不断求重心来重构树,让每个点的父亲是上一个求出的重心,这样可以保证树的深度。
首先,我们用动态开点线段树,每个点维护自己的子树,维护一个权值线段树,以距离为下标。
虽然重构后的树是完全乱的,但是点与点之间的关系其实是不变的,这样我们利用距离差就能维护的出问题了,但是其实还是有一点问题,就是下面统计过的树会对上面造成影响,这个我们再开一个线段树来维护对上方的影响。
因为每层等于开了一颗线段树,能够发现,它的空间大概是 O ( 2 ∗ 4 ∗ n l o g n ) O(2*4*nlogn) O(2∗4∗nlogn),也就是至少100多倍,可以说很惊人了
[1.2]震波虽然是板子题,但是不建议写,因为bzoj的老爷机+极小的时限导致必须使用树状数组或者极限卡线段树区间大小才能过
[1.2]烁烁的游戏这个更好的板子题,因为,其实和上面那个题很像,不过这个是区间修改,单点查询

究极传统手艺

[2.7]F. Ehab and the Big Finale树剖核心思想题目
[3.4]睡觉困难综合征或者在bzoj上由乃的OJ 树剖码力测试,我的测试结果不及格,所以写了个题解

乱搞

[2.6]D. Complete Mirror

智商欠费

线性智商欠费

[2.0]1636 教育改革
[3.3]F. Axel and Marston in BitlandDP+倍增
[3.5]E. Exam Cheating状态难想

树形智商欠费

在树形结构上dp,很类似于启发式合并,都是把子树的信息返回给父亲(所以说只是个记忆化搜索),处理方法和树分治很像,处理完一个子树更新一次,或者处理完统一更新(所以能各种乱搞),所以各种智商题(因为主体是dfs,所以很短?)。
树形背包很关键,一定要主要细节,比如哪些才是有效转移
[1.0]Anniversary party 每个点一个权,选了孩子不能选父亲,选了父亲不能选孩子,问最大权值和
[1.2]The more, The Better
[1.4]Tree of Tree 大小为k的子树最大权值和(树上背包)
[1.7]Cell Phone Network 一个点可以保护自己和相邻的点,问做少需要几个这样的点
[2.0]Tree直径有几条(尝试用 O ( n ) O(n) O(n)的dp,尽可能短地完成)
[2.1]Y树中三点不在一条路上的方案树
[2.2]The Ghost Blows Light 走边要时间,走点能拿宝藏,问1到n在T时间内最多多少宝藏
[2.2]E. Mahmoud and a xor trip
[2.3]Starship Troopers一个房间一个价值和话费,走过的路不能再走(本质不难,但是有坑,可能会带来启发,即把花费为0的叶子变为1,且注意花费和最大花费的关系)
[2.4]Tree2cycle 把树变成环,最少删除和添加几条边
[2.5]GeoDefense每个点可以建炮台,有造价和伤害,给你一些钱,让从1出发到达每个叶子的最小值最大(树上背包)
[2.7]Find Metal Mineral 给一棵树,每条边都有一个花费. 有k个机器人从S点出发, 问让机器人遍历所有边的最少花费值(树上背包)
[3.1]Ostap and Tree

概率智商欠费

[1.7]Jon and Orbs

单调队列优化智商欠费:

将策略有单调性的放到单调队列来优化(这里其实就从前向后扫决策时,如果后方决策更优,则代表之前的决策可以删掉,因为后方的决策不仅更优,还能存活更久)。
用的其实是双端队列,尾部控制单调性,头部控制合法,将 n 2 n^2 n2优化为n
具体操作方法:
先从尾部删不如当前决策优的,然后头部删非法的,操作完队头就是当前最优的
[1.9]Fence

乱搞智商欠费:

写一些用乱七八糟的方法写的DP
[2.7]Financiers Game (DFS+DP)

状压智商欠费:

[2.7]Vladik and cards
[2.8]E. Hongcow Buys a Deck of Cards

乱搞

[1.2]Molly’s Chemicals多少个区间和为 k x k^x kx
[1.3]Jon Snow and his Favourite Number
[]D. Timofey and rectangles
[]F. Music in Car
[2.2]Santa Claus and Tangerines
[2.3]E. Dasha and cyclic table(bitset)
[2.5]Sleep in Class(有点麻烦的队列模拟)
[2.5]Logical Chain神奇的bitset

期望与计数

[2.4]D. Bear and Tree Jumps树上期望
[2.7]F. Igor and Interesting Numbers
[2.9]F. Geometrical Progression(等比数列个数)
[3.1]E. Inversions After Shuffle
[3.2]F. Bacterial Melee
[3.3]F. Dasha and Photos(算最小矩阵距离)

构造

[2.3]D. Ehab and the Expected XOR Problem

游戏剧情过场动画合集制作指南:从4K录制到结构化整理 在游戏内容创作中,视频剪辑与内容整理是许多创作者关注的技术方向。面对大量游戏内演出素材,如何高效录制、编码并组织成易于检索的合集,直接影响内容价值。4K分辨率、码率、编码器选择等参数决定画质上限,而版本标记、文件命名与目录结构则决定了后期维护效率。从素材归档到发布标签设计,系统化的流程管理能显著提升视频的复用性和传播力。本文以游戏剧情过场动画合集为例,探讨从录制规范、剪辑工程到增量更新的完整链路,帮助创作者建立可持续的视频内容工作流。 阅读详情

相关推荐

LeetCode算法题Python实现合集(含思路注释,持续更新到10月)

整理了截至10月份LeetCode平台常见算法题的Python解法,每道题单独一个question.md文件,包含原题描述、解题思路分析、可直接运行的Python代码及关键步骤注释。覆盖双指针、滑动窗口、DFS/BFS、动态规划等主流算法模式,代码逻辑清晰、无外部依赖,适合面试准备或日常练习。配套README.md说明使用方法,.gitignore已适配标准开发环境。所有代码经过基础逻辑验证,强调通用性与可读性,便于快速掌握核心算法思想。不包含自动化测试脚本、图形界面或Web服务组件,纯文本代码资源,开箱即

delta的博客 264

微软的面试题及答案-超变态但是很经典

   第一组    1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?  2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻?  3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均匀,问你如何才能准确称出4公升的水

网络 人生 学习 进步 1927

墨水屏高效开发:架构、开源库与实战优化指南

嵌入式显示技术中,电子墨水屏以其类纸观感和超低功耗特性,在电子书阅读器、智能办公本及工业仪表等场景中占据独特地位。其工作原理基于微胶囊电泳技术,仅在画面刷新时消耗电能,静态显示时功耗近乎为零,这带来了极致的续航优势。为实现流畅的交互体验,开发者需构建分层渲染架构,通过硬件抽象层统一驱动接口,并引入帧缓冲与差异比较算法智能决策局部刷新区域,从而大幅降低刷新延迟与功耗。开源库如GxEPD2和LVGL为墨水屏适配提供了关键支持,结合波形文件管理与电源优化策略,能有效解决残影与卡顿问题。本文聚焦于eink墨水屏高效

weixin_42545636的博客 411

一道很有意思的思维题

题目要求如下:       有20个主人,20条狗,在同一个小区每天在同一地方同时遛狗,狗主人绝对聪明,可以直接发现别人家的狗是否是疯狗,但是不能直接发现自家的狗是否是疯狗。狗主人一旦推断出自家的狗是疯狗,晚上回家之后便会用枪把狗打死。第一天大家晚上遛狗回家之后没有枪声响起,第二天晚上大家遛狗回家之后没有枪声响起,第三天大家晚上遛狗回家之后多声枪声响起,请问有多少条疯狗?        条件:1....

云上道人的博客 5951

全国各省份影像下载地址(11级别)

cesium中使用urltemplate加载,leaflet中使用tile加载,具体加载有问题可以给我留言。

资深三维GIS开发 5144

STM8开发环境搭建(STVD + COSMIC)

一、STM8开发IDE 1. STVD + COSMIC ST Visual Develop (STVD)只支持汇编开发,C语言开发需要再安装COSMIC,配套起来使用。 2. IAR IAR也可以用来开发STM8 下面介绍STVD + COSMIC的搭建方式 二、环境搭建 1. STVD下载、安装 直接从官网下载:https://www.st.com/en/development-tools/stvd-stm8.html 安装很简单,基本下一步往下点。 2. COSMIC下载、安装 对于stm8可以使用3

a183635870的博客 1万+

有趣的题目

两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定    比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出    三队赛手的名单。 #include&lt;stdio.h&gt; int main() { char i, j, k; //i-a j-b k-c for(i = ‘x’; i &lt;= ‘z’; i++) { ...

weixin_44289499的博客 732

Acgis中实现栅格经纬度和行政区关联

目前已有意大利的shp文件,希望将意大利划分成0.1*0.1经纬度的栅格,并且关联每个栅格中心点所属的省份信息。最终希望得到的输出是一个表格,里面包含栅格的经纬度、所属省份信息。

qq_42183184的博客 3369

一些比较有意思的题目

递归问题往往存在子问题,本文中的递归问题不属于之前的专题,故单列一个专题。1.从一个n位数中寻找m位数,并输出最小值来源:面试一家创业公司的题目Example 输入:698592 k = 4 输出 :6592Solution:一种比较常见的思路是枚举全部k=4的数字,然后再取最小值,然而这样复杂度会很高。本文的思路是不断递归求得最小值,注意边界,可以显著降低复杂度。void find_min

雪伦的专栏 3892

Python 爬虫实战:微博自动化运营工具(点赞 / 转发 / 评论 + 反封号策略)

微博作为中国最大的社交媒体平台之一,拥有庞大的用户群体和丰富的数据资源。通过 Python 爬虫技术,我们可以实现微博的自动化运营,包括点赞、转发、评论等功能,同时采取有效的反封号策略,确保账号的安全和稳定运行。

u014481728的博客 1178

一个代码循环计算水在石墨烯表面的接触角

石墨烯接触角

Rockyoung 2578

let‘s play game!

第1题    Alice和她的同学Bob通过网上聊天商量明天早晨谁去教室打扫卫生的事,Bob说:“我在桌上放了一枚硬币,你猜一下,是正面朝上还是反面朝上?如果猜对了,我去扫地。如果猜错了,嘿嘿…。”       Alice显然不会同意,担心自己不论猜正面还是反面,Bob都说她错了。       分析:  看到这题,我的第一反应是葛优的“分歧终端机”。(╯▽

pi9nc的专栏 1567

踩遍Windows所有坑:Codex CLI桌面端+命令行双环境安装避坑实战

Windows下装Codex CLI的坑,本质上都是Windows本身的路径、环境变量、权限、编码这些历史遗留问题,和工具本身关系不大。只要避开中文路径、正确配置PATH、注意终端环境差异,其实安装非常简单。这套双环境方案配好之后,桌面端适合可视化调试、多会话管理,终端适合嵌入编辑器、脚本调用,一套配置两边通用,体验还是很流畅的。按照上面的流程走,基本不会出大问题,就算出问题也能在排查表里找到对应解法。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 299

高质量学习资料 + AI工具推荐合集(持续更新,建议收藏)

DeepSeek 是近年来备受关注的国产AI平台,特别适合自媒体创作、教师办公、资料整理等场景。喂饭级别的DeepSeek操作文档:https://pan.quark.cn/s/a9d43461de22。我会持续更新更多教育、AI工具、办公效率、学习资源合集,欢迎留言互动你感兴趣的方向!🎯 从部署、功能、提效技巧到商业化玩法,一文搞懂如何用AI放大你的能力!🤖 DeepSeek系列教程(AI生产力提升秘籍)《Manus是什么?📌 如果你觉得这份资料合集对你或家人有帮助,欢迎。AI资料合集(清华团队整理

qxf865618770的博客 1346

FastAPI 高级特性:同异步路由函数、依赖注入与后台任务

在现代 Web 开发中,高效的性能和简洁的代码结构是至关重要的。FastAPI 作为一个现代、快速(高性能)的 Web 框架,凭借其对异步编程的原生支持和直观的依赖注入系统,迅速成为开发者的热门选择。在本文中,将深入探讨 `FastAPI` 中的几个核心概念:同异步函数的区别、`Depends` 依赖以及后台任务。

qq_43629857的博客 203

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

人工智能的三个阶段计算智能,感知智能和认知智能

人工智能技术是一项复杂的系统性工程,而且更多时候它只是一个概念性的技术;没有有人知道人工智能应该是什么样,也没有人知道应该怎么才能实现人工智能。

2401_85327249的博客 3636

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

大模型场景应用全集:持续更新中

一、应用场景。

chengxuyuanyy的博客 538

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

宝藏知识合集:自学高手、程序员、孩子、国学爱好者都不容错过!

Z_Library网站电子书库下载种子(约1800万册共10TB)含目录索引。少年启蒙、简笔画绘画、程序员成长、国学中医、畅销书、电子书库下载、认知提升。A00790. Android开发高手进阶(中国程序员).azw3。60多门编程语言学习书籍超级大合集(700+本PDF)一通百通,搞定各领域的全能自学法(来自码农乐园)社会常识全知道:不可不知的2000个社会常识。🔸 想成为学习高手、自律达人、自我进化者。🔸 想补充知识提升认知、赶超同龄人的你!:我将持续更新、分享更多宝藏合集!

qxf865618770的博客 4008

ARMR视频教程合集(持续更新_20210818)

  科学技术的发展拓展了人类感知的深度与广度,增强了人类对世界的认知能力。高速的数据流使信息的传递与获取前所未有的便捷,虚实融合技术的出现,开创了人类认知领域新的维度,推动着信息获取向 更高效、直观、更具真实感的方向发展。   增强现实(AR)、混合现实(MR)技术是将虚拟信息与真实世界融合展示的技术,其广泛运用了人工智能、三维建模、实时跟踪注册、虚实融合、智能交互、传感计算等多种技术手段,将计算机生成的文字、图像、三维模型、 音频、视频、动画等虚拟信息模拟仿真后,应用到真实世界中。AR/MR技术同时考虑了

DavidWang 1988

教育心理资源合集:构建高效学习支持系统

教育心理学作为研究学习过程与心理发展的学科,其核心在于理解认知、情绪与动机的相互作用机制。通过系统化的评估工具(如注意力测试量表)与干预方案(如正念训练),能够有效提升学习效能。在教育数字化转型背景下,这类资源尤其适合解决K12阶段常见的注意力分散、学习动机不足等问题。本文介绍的教育心理资源合集采用三维架构设计,整合了认知行为疗法等实证有效的技术,为教师、家长提供即用型工具包。其中情绪调节技术库和认知评估工具包等模块,已在实际教学中验证可降低课堂冲突42%,提升有效学习时间28%。

weixin_30675247的博客 370

关于编程, 游戏, 学习, 人生和奥特曼的感想 (持续更新)

那一年, 我也成为了光

Had的博客 2万+

从资源囤积到认知输出:信息时代个体成长的底层逻辑与认知跃迁路径

问题不在资源不足,而在需求不清。于是,认知焦点从“我能拿到什么”转向“我真正需要什么”。这种转变标志着元认知能力(Metacognition)的觉醒——即对自身认知过程的监控与调节。我的学习目标是什么?(应试?求职?兴趣?我当前的知识缺口在哪里?哪些信息对填补缺口真正有效?此时,“有书”不再是炫耀资本,而是待评估的原材料;“求好书”则成为基于目标的精准筛选。初学者需要结构化教程(如《Java核心技术》);进阶者需要源码解析(如Spring Framework源码);

吾为热爱计科,致力于知识分享的践行者,此博客是我在这条道路上留下的足迹。 190

Mamba技术教程合集:系统化学习路径设计

系统化学习路径设计是技术教育领域的核心方法论,通过结构化内容编排解决碎片化学习痛点。其原理基于认知心理学中的渐进式学习理论,将知识体系划分为基础、进阶、专家三级架构,配合案例驱动和知识图谱实现高效技能转化。在工程实践中,这种模式显著提升学习效率,如Python系统教程的完读率比碎片内容高47%。典型应用场景包括深度学习框架学习、全栈开发技能树构建等,其中分层递进式结构和Docker+JupyterLab环境配置已成为行业标配。本方案特别整合了错误博物馆和交互式代码沙箱等创新设计,使实操完成率提升至89%。

weixin_33298352的博客 207

网盘资源合集整理指南:从收藏到高效使用的知识库搭建

在信息爆炸时代,个人知识管理成为提升效率的关键。网盘资源合集作为一种常见的信息存储形式,其核心价值在于通过系统化整理实现快速检索与知识转化。原理上,合理的分类、索引和命名规范能大幅降低查找成本,而分层缓存与定期清理则确保资源库的活力。技术价值体现在将零散资料转化为可迭代的个人知识基础设施,应用场景涵盖学习、工作和创作。本文聚焦高质量资源合集的筛选标准与落地方法,帮助读者构建真正用得上的知识库。

weixin_42548874的博客 352

机器学习资料收集(持续更新)

书籍论文资料: 机器学习大牛,Andrew Ng主讲的斯坦福大学机器学习课程: http://www.holehouse.org/mlclass/   国外程序猿整理的机器学习资,主要汇编了一些机器学习领域的框架,库,以及软件(按编程语言排序):http://blog.jobbole.com/73806/ 机器学习的经典书籍,包括数学基础和算法理论的书籍:点击

qianxin_dh的专栏 1261
上一篇: luoguP3613/BZOJ4811 睡觉困难综合征/由乃的OJ
下一篇: b2324/luogu4542 [ZJOI2011]营救皮卡丘
Roll_Keyboard
博客等级 码龄9年 10粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值