摘要: 强连通分量 以 P3387 【模板】缩点 / 强连通分量 为例: 什么是强连通分量:在有向图中,某些点可以相互到达(在同一个强连通分量中的点 \(i,j\) ,从 \(i\) 可以到达 \(j\) ,从 \(j\) 也可以到达 \(i\) )。 对每个强连通分量缩为一个点后,会形成一个 DAG (有 阅读全文
posted @ 2026-08-11 22:41 TanHaoren 阅读(5) 评论(0) 推荐(0)
摘要: SG函数 在博弈论中,每个状态可以设为图中的一个节点,每次操作可以认为在图中转移。 mex()函数 :对一个序列操作,返回其中第一个没有出现的自然数 (\(\mathbb{N}\))。 SG函数 :代表每一个局面的状态,如果 \(sg_i=0\) 则必败,否则必胜。 求SG函数:设所有可以转移到状态 阅读全文
posted @ 2026-08-11 22:39 TanHaoren 阅读(7) 评论(0) 推荐(0)
摘要: 1002B 通过:797/2344 主要考察状态压缩dp 一个串有 4个状态,问最短的子序列,包含原有的串的所有状态,不包含没有的状态。 有的状态要,有的不要,并求出符合的子序列,容易想到状态压缩dp。算下复杂度是可以的。 设 \(f_{i,j,k}\) 表示枚举到第 \(i\) 位时,包含状态为 阅读全文
posted @ 2026-08-11 22:38 TanHaoren 阅读(4) 评论(0) 推荐(0)
摘要: 一般考察公平组合游戏 什么是公平组合游戏 特点有: 两玩家轮流行动,方式一致; 两玩家对游戏完全了解,完全理性 一定会在有限步数内结束,一方胜利,一方失败 以一方无法行动为结束 所以,只要知道某个局面,就能推断出胜负情况。 Bash 游戏 问题:一共 \(n\) 个石子,轮流拿,每次拿 \(1 \s 阅读全文
posted @ 2026-08-06 10:21 TanHaoren 阅读(13) 评论(0) 推荐(0)
摘要: 以 P5357 【模板】AC 自动机 为例。 AC自动机是用于进行多模板串的匹配。既然是多模板串,当然是在字典树上构建的。作为自动机,就是根据规则不断在图上游走,最终走到需要的点。 插入时正常插入,记录模板串。 void ins(int len,int idn){ int now=0; for(in 阅读全文
posted @ 2026-08-03 13:09 TanHaoren 阅读(3) 评论(0) 推荐(0)
摘要: 怎么求KMP border是KMP中的关键概念,border就是一个字符串,它既是某个串的前缀,又是后缀。 定义 \(nxt_i\) 是对于前 \(i\) 个字符串的最长border,在前缀相同部分的末尾位置。 \(nxt_i\) 的作用是,如果在 \(a_{i+1}\) 失配,作为模板串不会从头开 阅读全文
posted @ 2026-08-03 10:54 TanHaoren 阅读(3) 评论(0) 推荐(0)
摘要: 在线段树上二分。 假设是找排名 lim 的位置: int qur(int lim,int l,int r,int k){ if(l==r){ return l; } else{ int m=(l+r)>>1; down(l,r,k); int suml=(m-l+1)-t[k<<1].sum; if 阅读全文
posted @ 2026-08-03 10:29 TanHaoren 阅读(3) 评论(0) 推荐(0)
摘要: CF650D Zip-line 大概题面: 给定一个长度为 \(n\) 的序列以及\(m\)个操作,每个操作形如“ \(a_i,b_i\) ”,表示将序列中第 \(a_i\) 个数改为 \(b_i\) .对于每个操作,求出序列的最长严格上升子序列长度。 注意:每个操作之间彼此独立。(即每次操作未进行 阅读全文
posted @ 2024-08-13 09:48 TanHaoren 阅读(45) 评论(0) 推荐(0)
摘要: 感觉这个题的操作很新奇,做个记录。 P4823 [TJOI2013] 拯救小矮人 大概题面: 一群小矮人掉进了一个很深的陷阱里,由于太矮爬不上来,于是他们决 定搭一个人梯。即:一个小矮人站在另一小矮人的肩膀上,直到最顶端 的小矮人伸直胳膊可以碰到陷阱口。 对于每一个小矮人,我们知道他从脚到肩膀的高度 阅读全文
posted @ 2024-07-23 23:17 TanHaoren 阅读(68) 评论(0) 推荐(0)
摘要: 怎么求LIS #1 考虑 $ O(n^2) $ dp处理。 设 \(f_i\) 为当前第 \(i\) 个的最长长度,则自然有 $ f_i=\max\limits_{j=1}^{i-1}f_j +1 ,a_i>a_j $ #2 考虑将新加入的序列放入栈中。如果当前的\(a_i\)是上升的,就直接放入栈 阅读全文
posted @ 2024-07-23 00:12 TanHaoren 阅读(41) 评论(0) 推荐(0)