算法题目类型索引
算法题目类型与相关题目索引
目录
- 总览
- Codeforces 题目类型
- 代码随想录算法路线补充
总览
| 类型 | 专题数 | 题目条目数 |
|---|---|---|
| 精选题解 | 4 | 12 |
| 数据结构 | 116 | 443 |
| 动态规划 | 128 | 543 |
| 图论 | 130 | 451 |
| 数学 | 169 | 403 |
| 字符串 | 63 | 164 |
| 搜索 | 15 | 23 |
| 位运算 | 37 | 119 |
| 基础算法 | 26 | 76 |
| 离线算法 | 1 | 2 |
| 模拟与构造 | 2 | 6 |
| 通用思维与技巧 | 88 | 660 |
| 交互题 | 10 | 65 |
| 测试与随机化 | 5 | 15 |
| 杂项 | 23 | 35 |
精选题解
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1400 | CF1790E | 数学综合 | 位运算恒等式 | 有 | main/README.md:35 |
|
| 1800 | CF1922E | 手玩题(构造、思维) | 反向构造+递增子序列 | 有 | main/README.md:9 |
|
| 1900 | CF452D | 动态规划 | 状态设计 | 有 | main/README.md:18 |
|
| 1900 | CF1054D | 手玩题(构造、思维) | 正难则反 | 有 | main/README.md:11 |
|
| 1900 | CF1914F | 手玩题(构造、思维) | 树上贪心 | 有 | main/README.md:10 |
|
| 1900 | CF1921F | 数据结构 | 带权前缀和+根号算法 | 有 | main/README.md:28 |
|
| 2000 | CF1733D2 | 动态规划 | 状态设计 | 有 | main/README.md:19 |
|
| 2100 | CF1913D | 动态规划 | 单调栈+前缀和优化 DP | 有 | main/README.md:20 |
|
| 2500 | CF1327F | 动态规划 | 状态设计+滑窗优化 | 有 | main/README.md:21 |
|
| 2500 | CF1665E | 手玩题(构造、思维) | 从特殊到一般 | 有 | main/README.md:12 |
|
| 2600 | CF1237F | 动态规划 | 计数 DP | 有 | main/README.md:22 |
|
| 2700 | CF1730E | 数据结构 | 单调栈 | 有 | main/README.md:29 |
数据结构
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1200 | CF1076A | 字典序最小 | 只能删一个 | remove-k-digits | 有 | copypasta/monotone_stack.go:71 |
| 1200 | CF1730C | 字典序最小 | remove-k-digits | 有 | copypasta/monotone_stack.go:72 |
|
| 1300 | CF755C | 另见 graph.go 中的 MST | 有 | copypasta/union_find.go:40 |
||
| 1300 | CF1736C1 | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | guess-number-higher-or-lower-ii find-maximum-non-decreasing-array-length |
有 | copypasta/monotone_queue.go:34 |
|
| 1374 | CF1374E2 | 其它题目 | 代码 https://codeforces.com/contest//submission/193671570 | 有 | copypasta/heap.go:400 |
|
| 1400 | CF1167C | 另见 graph.go 中的 MST | copypasta/union_find.go:41 |
|||
| 1400 | CF1905C | 字典序最小 | remove-k-digits | 有 | copypasta/monotone_stack.go:73 |
|
| 1500 | CF91B | 单调栈二分 | find-building-where-alice-and-bob-can-meet maximum-sum-queries |
有 | copypasta/monotone_stack.go:64 |
|
| 1500 | CF190C | 栈的应用 | 有 | copypasta/stack.go:15 |
||
| 1500 | CF1106D | 第 K 小/大(值/和) | 有 | copypasta/heap.go:24 |
||
| 1500 | CF1765N | 字典序最小 | remove-k-digits | 有 | copypasta/monotone_stack.go:70 |
|
| 1500 | CF1791F | 经典模型是一维区间覆盖染色,通过倒序+并查集解决 | sum-of-matrix-after-queries | 有 | copypasta/union_find.go:85 |
|
| 1500 | CF1883D | 懒删除堆 | max-stack most-frequent-ids |
有 | copypasta/heap.go:213 |
|
| 1500 | CF1898B | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | guess-number-higher-or-lower-ii find-maximum-non-decreasing-array-length |
有 | copypasta/monotone_queue.go:33 |
|
| 1500 | CF1915F | 模板题 | range-sum-query-mutable | copypasta/fenwick_tree.go:27 |
||
| 1500 | CF1985F | 模拟 | time-to-cross-a-bridge | 有 | copypasta/heap.go:34 |
|
| 1500 | CF2060E | 另见 graph.go 中的 MST | 有 | copypasta/union_find.go:42 |
||
| 1600 | CF1041C | 经典模型是一维区间覆盖染色,通过倒序+并查集解决 | sum-of-matrix-after-queries | copypasta/union_find.go:86 |
||
| 1600 | CF1140C | 第 K 小/大(值/和) | 有 | copypasta/heap.go:25 |
||
| 1600 | CF1234D | 模板题 | range-sum-query-mutable | 有 | copypasta/fenwick_tree.go:28 |
|
| 1600 | CF1526C2 | 基于堆的反悔贪心(反悔堆) | 有 | copypasta/heap.go:80 |
||
| 1600 | CF1779C | 基于堆的反悔贪心(反悔堆) | 前缀和 推荐 | 有 | copypasta/heap.go:81 |
|
| 1600 | CF1862E | 第 K 小/大(值/和) | 有 | copypasta/heap.go:27 |
||
| 1600 | CF1886C | 字典序最小的无重复字符的子序列,包含原串所有字符 | remove-duplicate-letters | 有 | copypasta/monotone_stack.go:384 |
|
| 1600 | CF1941E | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | 造桥 入门题 | guess-number-higher-or-lower-ii find-maximum-non-decreasing-array-length |
有 | copypasta/monotone_queue.go:35 |
| 1600 | CF2046B | 字典序最小 | remove-k-digits | 有 | copypasta/monotone_stack.go:74 |
|
| 1600 | CF2171F | 这一结论可以用于思考一些双变量的题目 | 给定排列 p,构造一棵树,满足每条边的 pos[小端] < pos[大端] | next-greater-element-iv | 有 | copypasta/monotone_stack.go:45 |
| 1632 | CF650C | 树+点权/边权的顺序 | LC https://leetcode.cn/problems/rank-transform-of-a-matrix/submissions/ | rank-transform-of-a-matrix | 有 | copypasta/union_find.go:116 |
| 1700 | CF627B | 模板题 | 模板题 | range-sum-query-mutable | 有 | copypasta/fenwick_tree.go:29 |
| 1700 | CF631C | 这一结论可以用于思考一些双变量的题目 | next-greater-element-iv | 有 | copypasta/monotone_stack.go:46 |
|
| 1700 | CF827A | 经典模型是一维区间覆盖染色,通过倒序+并查集解决 | sum-of-matrix-after-queries | 有 | copypasta/union_find.go:87 |
|
| 1700 | CF1157E | 经典模型是一维区间覆盖染色,通过倒序+并查集解决 | sum-of-matrix-after-queries | 有 | copypasta/union_find.go:88 |
|
| 1700 | CF1207F | 注意:枚举时要做到不重不漏 | 实际难度 | you-le-yuan-de-you-lan-ji-hua xor-after-range-multiplication-queries-ii |
有 | copypasta/sqrt_decomposition.go:31 |
| 1700 | CF1209D | 另见 graph.go 中的 MST | 有 | copypasta/union_find.go:43 |
||
| 1700 | CF1411C | 另见 graph.go 中的 MST | 有 | copypasta/union_find.go:44 |
||
| 1700 | CF1413D | Lazy 思想在其他数据结构中的应用 | 已知进货+买最小的顺序,检查是否合法 | 有 | copypasta/segment_tree.go:435 |
|
| 1700 | CF1594D | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | 种类并查集 | 有 | copypasta/union_find.go:544 |
|
| 1700 | CF1709D | st[i][j] 对应的区间是 [i, i+2^j) | 有 | copypasta/sparse_table.go:24 |
||
| 1700 | CF1850H | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | 有 | copypasta/union_find.go:536 |
||
| 1700 | CF2050F | 《算法竞赛进阶指南》0x43 和 0x48 节 | GCD | 有 | copypasta/segment_tree.go:31 |
|
| 1700 | CF2050F | st[i][j] 对应的区间是 [i, i+2^j) | GCD | 有 | copypasta/sparse_table.go:25 |
|
| 1800 | CF280B | 这一结论可以用于思考一些双变量的题目 | 转换 | next-greater-element-iv | 有 | copypasta/monotone_stack.go:47 |
| 1800 | CF371D | 另见 graph.go 中的 MST | 有 | copypasta/union_find.go:45 |
||
| 1800 | CF371D | 区间并查集 / 涂色并查集 / 刷墙并查集 | 经典题 | minimum-interval-to-include-each-query amount-of-new-area-painted-each-day |
有 | copypasta/union_find.go:292 |
| 1800 | CF652D | 模板题 | 区间包含计数 | 有 | copypasta/fenwick_tree.go:31 |
|
| 1800 | CF911D | 归并做法见 misc.go 中的 mergeCount | shu-zu-zhong-de-ni-xu-dui-lcof | 有 | copypasta/fenwick_tree.go:525 |
|
| 1800 | CF986B | 归并做法见 misc.go 中的 mergeCount | copypasta/fenwick_tree.go:526 |
|||
| 1800 | CF1042D | EXTRA: 权值线段树 值域线段树 | 有 | copypasta/segment_tree.go:125 |
||
| 1800 | CF1227D2 | 另见 union_find.go 中的「可持久化并查集」 | 用在线算法解决 | 有 | copypasta/segment_tree.go:908 |
|
| 1800 | CF1548B | st[i][j] 对应的区间是 [i, i+2^j) | GCD | 有 | copypasta/sparse_table.go:26 |
|
| 1800 | CF1691D | 这一结论可以用于思考一些双变量的题目 | max >= sum | 有 | copypasta/monotone_stack.go:48 |
|
| 1800 | CF1870D | 字典序最小 | remove-k-digits | 有 | copypasta/monotone_stack.go:75 |
|
| 1800 | CF1935C | 第 K 小/大(值/和) | 有 | copypasta/heap.go:29 |
||
| 1800 | CF2020D | 区间并查集 / 涂色并查集 / 刷墙并查集 | minimum-interval-to-include-each-query amount-of-new-area-painted-each-day |
有 | copypasta/union_find.go:293 |
|
| 1900 | CF6E | 单调队列求最值等 | copypasta/monotone_queue.go:63 |
|||
| 1900 | CF61E | 归并做法见 misc.go 中的 mergeCount | 三元逆序对 | 有 | copypasta/fenwick_tree.go:527 |
|
| 1900 | CF292E | 一般情况可以用于区间更新单点查询 | 代码 https://codeforces.com/contest/292/submission/173666674 | range-module falling-squares |
有 | copypasta/odt_bst.go:12 |
| 1900 | CF292E | 【单个更新操作】 | 单点查询的简化写法 | 有 | copypasta/segment_tree.go:365 |
|
| 1900 | CF362C | 归并做法见 misc.go 中的 mergeCount | 扩展 | 有 | copypasta/fenwick_tree.go:528 |
|
| 1900 | CF597C | 模板题 | 长为 k 的上升子序列个数 | 有 | copypasta/fenwick_tree.go:33 |
|
| 1900 | CF724D | 经典模型是一维区间覆盖染色,通过倒序+并查集解决 | sum-of-matrix-after-queries | 有 | copypasta/union_find.go:89 |
|
| 1900 | CF724D | 区间并查集 / 涂色并查集 / 刷墙并查集 | minimum-interval-to-include-each-query amount-of-new-area-painted-each-day |
有 | copypasta/union_find.go:294 |
|
| 1900 | CF796C | 懒删除堆 | max-stack most-frequent-ids |
有 | copypasta/heap.go:214 |
|
| 1900 | CF817D | 贡献法(计算所有子数组的……的和) | sum-of-subarray-minimums sum-of-subarray-ranges |
有 | copypasta/monotone_stack.go:83 |
|
| 1900 | CF914D | 《算法竞赛进阶指南》0x43 和 0x48 节 | GCD | 有 | copypasta/segment_tree.go:32 |
|
| 1900 | CF926E | f[i][j] 表示前 i 颗行星,向右的质量之和为 j 时,向左的质量之和的最小值 | 难度虚高 | robot-collisions | 有 | copypasta/stack.go:10 |
| 1900 | CF961E | 模板题 | (不止一种做法) | 有 | copypasta/fenwick_tree.go:34 |
|
| 1900 | CF961E | 另见 union_find.go 中的「可持久化并查集」 | 用在线算法解决(一边读入一边计算答案) | 有 | copypasta/segment_tree.go:909 |
|
| 1900 | CF1208D | 【单个更新操作】 | copypasta/segment_tree.go:347 |
|||
| 1900 | CF1313C2 | 单调栈优化 DP | beautiful-towers-ii | 有 | copypasta/monotone_stack.go:95 |
|
| 1900 | CF1430E | 归并做法见 misc.go 中的 mergeCount | reverse | 有 | copypasta/fenwick_tree.go:529 |
|
| 1900 | CF1585D | 归并做法见 misc.go 中的 mergeCount | 有 | copypasta/fenwick_tree.go:530 |
||
| 1900 | CF1777D | 另见单调栈 monotone_stack.go | 有 | copypasta/cartesian_tree.go:11 |
||
| 1900 | CF1899G | 一边从小到大枚举 x,一边更新【值域树状数组】,一边回答离线后的询问 | maximum-area-rectangle-with-point-constraints-ii | 有 | copypasta/fenwick_tree.go:222 |
|
| 1900 | CF1918D | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | find-maximum-non-decreasing-array-length | 有 | copypasta/monotone_queue.go:36 |
|
| 1900 | CF1921F | 注意:枚举时要做到不重不漏 | you-le-yuan-de-you-lan-ji-hua xor-after-range-multiplication-queries-ii |
有 | copypasta/sqrt_decomposition.go:32 |
|
| 1900 | CF1969D | 动态维护最大的 k 个数用最小堆,动态维护最小的 k 个数用最大堆 | 有 | copypasta/heap.go:20 |
||
| 1900 | CF2001D | 字典序最小 | 有 | copypasta/monotone_stack.go:76 |
||
| 1900 | CF2001D | 字典序最小的无重复字符的子序列,包含原串所有字符 | remove-duplicate-letters | 有 | copypasta/monotone_stack.go:385 |
|
| 1900 | CF2042D | 模板题 | 有 | copypasta/fenwick_tree.go:35 |
||
| 1900 | CF2117G | 另见 graph.go 中的 MST | 枚举大,维护小 | 有 | copypasta/union_find.go:46 |
|
| 2000 | CF380C | 《算法竞赛进阶指南》0x43 和 0x48 节 | 区间最长括号子序列 | 有 | copypasta/segment_tree.go:33 |
|
| 2000 | CF383C | = (m+1)∑diff[i] - ∑i*diff[i] | 有 | copypasta/fenwick_tree.go:285 |
||
| 2000 | CF474E | 《算法竞赛进阶指南》0x43 和 0x48 节 | 最值及其下标 | 有 | copypasta/segment_tree.go:34 |
|
| 2000 | CF487B | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | 有 | copypasta/monotone_queue.go:37 |
||
| 2000 | CF522D | 《算法竞赛进阶指南》0x43 和 0x48 节 | 区间最短线段长度 | 有 | copypasta/segment_tree.go:35 |
|
| 2000 | CF629D | 模板题 | 有 | copypasta/fenwick_tree.go:37 |
||
| 2000 | CF730I | 基于堆的反悔贪心(反悔堆) | 有 | copypasta/heap.go:82 |
||
| 2000 | CF730I | 模拟费用流 | 有 | copypasta/heap.go:103 |
||
| 2000 | CF766D | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | 种类并查集 | 有 | copypasta/union_find.go:545 |
|
| 2000 | CF797E | 注意:枚举时要做到不重不漏 | you-le-yuan-de-you-lan-ji-hua xor-after-range-multiplication-queries-ii |
有 | copypasta/sqrt_decomposition.go:33 |
|
| 2000 | CF899E | 懒删除堆 | max-stack most-frequent-ids |
有 | copypasta/heap.go:215 |
|
| 2000 | CF899E | 模拟双向链表 | 有 | copypasta/monotone_stack.go:355 |
||
| 2000 | CF899E | 经典模型是一维区间覆盖染色,通过倒序+并查集解决 | 也可以用双向链表 | sum-of-matrix-after-queries | 有 | copypasta/union_find.go:90 |
| 2000 | CF920F | 《算法竞赛进阶指南》0x43 和 0x48 节 | 开方(也可以用并查集做) | 有 | copypasta/segment_tree.go:36 |
|
| 2000 | CF940E | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | 有 | copypasta/monotone_queue.go:38 |
||
| 2000 | CF1237D | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | 有 | copypasta/monotone_queue.go:39 |
||
| 2000 | CF1288E | 模板题 | 转化 | 有 | copypasta/fenwick_tree.go:38 |
|
| 2000 | CF1321E | 【单个更新操作】 | 有 | copypasta/segment_tree.go:348 |
||
| 2000 | CF1514D | 《算法竞赛进阶指南》0x43 和 0x48 节 | 区间绝对众数及其次数(摩尔投票算法) | copypasta/segment_tree.go:39 |
||
| 2000 | CF1726D | 另见 graph.go 中的 MST | 处理图上的环 | 有 | copypasta/union_find.go:47 |
|
| 2000 | CF1851G | 另见 graph.go 中的 MST | 离线 | 有 | copypasta/union_find.go:48 |
|
| 2000 | CF1881G | 【单个更新操作】 | 不含任何长度 >= 2 的回文串 | copypasta/segment_tree.go:367 |
||
| 2000 | CF1891F | 模板题 | 离线 树 回溯 | 有 | copypasta/fenwick_tree.go:39 |
|
| 2000 | CF1974G | 基于堆的反悔贪心(反悔堆) | 有 | copypasta/heap.go:84 |
||
| 2100 | CF103D | 注意:枚举时要做到不重不漏 | you-le-yuan-de-you-lan-ji-hua xor-after-range-multiplication-queries-ii |
copypasta/sqrt_decomposition.go:34 |
||
| 2100 | CF165D | 模板题 | copypasta/fenwick_tree.go:40 |
|||
| 2100 | CF455C | 树+点权/边权的顺序 | 有 | copypasta/union_find.go:113 |
||
| 2100 | CF540E | 归并做法见 misc.go 中的 mergeCount | 1e9 范围逆序对 | copypasta/fenwick_tree.go:531 |
||
| 2100 | CF620E | 【单个更新操作】 | 有 | copypasta/segment_tree.go:368 |
||
| 2100 | CF620E | 另见 union_find.go 中的「可持久化并查集」 | 种类数 | 有 | copypasta/segment_tree.go:910 |
|
| 2100 | CF689D | st[i][j] 对应的区间是 [i, i+2^j) | 二分/三指针 | 有 | copypasta/sparse_table.go:27 |
|
| 2100 | CF703D | 模板题 | 区间元素去重后的异或和 | 有 | copypasta/fenwick_tree.go:41 |
|
| 2100 | CF703D | 《算法竞赛进阶指南》0x43 和 0x48 节 | 区间元素去重后的异或和 | majority-element online-majority-element-in-subarray |
有 | copypasta/segment_tree.go:44 |
| 2100 | CF912D | 思维·转换 | 贡献 | trapping-rain-water-ii minimum-cost-to-hire-k-workers |
copypasta/heap.go:44 |
|
| 2100 | CF1077F2 | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | 有 | copypasta/monotone_queue.go:40 |
||
| 2100 | CF1158C | 2. 横着累加:见单调栈的做法(找上一个更大元素,在找的过程中填坑) | collecting-chocolates | 有 | copypasta/monotone_stack.go:111 |
|
| 2100 | CF1195E | 输入:高 h 宽 w 的窗口大小 | copypasta/monotone_queue.go:261 |
|||
| 2100 | CF1216F | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | copypasta/monotone_queue.go:41 |
|||
| 2100 | CF1483C | 单调栈优化 DP | 结合线段树,或者巧妙地在单调栈中去维护最值 | beautiful-towers-ii | 有 | copypasta/monotone_stack.go:96 |
| 2100 | CF1660F2 | 模板题 | 建模 | 有 | copypasta/fenwick_tree.go:43 |
|
| 2100 | CF1667B | 模板题 | 有 | copypasta/fenwick_tree.go:44 |
||
| 2100 | CF1790F | 自动 O(n√n) | 有 | copypasta/sqrt_decomposition.go:64 |
||
| 2100 | CF1913D | 单调栈优化 DP | beautiful-towers-ii | 有 | copypasta/monotone_stack.go:97 |
|
| 2100 | CF1919D | 这一结论可以用于思考一些双变量的题目 | 结论 | 有 | copypasta/monotone_stack.go:49 |
|
| 2200 | CF52C | 【单个更新操作】 | 有 | copypasta/segment_tree.go:349 |
||
| 2200 | CF301D | 模板题 | 整除对统计 | 有 | copypasta/fenwick_tree.go:45 |
|
| 2200 | CF369E | 模板题 | 区间统计技巧 | 有 | copypasta/fenwick_tree.go:46 |
|
| 2200 | CF538F | 另见 union_find.go 中的「可持久化并查集」 | 二维数点 | copypasta/segment_tree.go:911 |
||
| 2200 | CF617E | 注 2:为防止块大小为 0,代码中要取 ceil(n/√m) | 有 | copypasta/mo.go:54 |
||
| 2200 | CF762E | 模板题 | 离散化 | 有 | copypasta/fenwick_tree.go:47 |
|
| 2200 | CF875D | 2. 横着累加:见单调栈的做法(找上一个更大元素,在找的过程中填坑) | collecting-chocolates | 有 | copypasta/monotone_stack.go:112 |
|
| 2200 | CF1045G | 模板题 | 同 762E | 有 | copypasta/fenwick_tree.go:48 |
|
| 2200 | CF1179C | 《算法竞赛进阶指南》0x43 和 0x48 节 | online-majority-element-in-subarray | 有 | copypasta/segment_tree.go:47 |
|
| 2200 | CF1181D | 另见 union_find.go 中的「可持久化并查集」 | 做法不止一种 | 有 | copypasta/segment_tree.go:912 |
|
| 2200 | CF1194E | 模板题 | 多变量统计 | 有 | copypasta/fenwick_tree.go:49 |
|
| 2200 | CF1196F | 第 K 小/大(值/和) | 有 | copypasta/heap.go:30 |
||
| 2200 | CF1295E | 【单个更新操作】 | 有 | copypasta/segment_tree.go:370 |
||
| 2200 | CF1407D | 单调栈优化 DP | beautiful-towers-ii | 有 | copypasta/monotone_stack.go:99 |
|
| 2200 | CF1428E | 基于堆的反悔贪心(反悔堆) | 用堆来不断修正最优决策 | 有 | copypasta/heap.go:86 |
|
| 2200 | CF1557D | 【单个更新操作】 | max max 离散化 | 有 | copypasta/segment_tree.go:371 |
|
| 2200 | CF1557D | 动态开点线段树·其二·延迟标记(区间修改) | (内存受限) | 有 | copypasta/segment_tree.go:668 |
|
| 2200 | CF1567E | 《算法竞赛进阶指南》0x43 和 0x48 节 | 区间连续递增子数组个数 todo | majority-element online-majority-element-in-subarray |
copypasta/segment_tree.go:46 |
|
| 2200 | CF1580C | 注意:枚举时要做到不重不漏 | you-le-yuan-de-you-lan-ji-hua xor-after-range-multiplication-queries-ii |
copypasta/sqrt_decomposition.go:35 |
||
| 2200 | CF1615D | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | copypasta/union_find.go:546 |
|||
| 2200 | CF1806E | 这样,以 √n 为界,我们将所有对象划分成了两组,并用两个不同的算法处理 | 有 | copypasta/sqrt_decomposition.go:23 |
||
| 2200 | CF1806E | 注意:枚举时要做到不重不漏 | xor-after-range-multiplication-queries-ii | 有 | copypasta/sqrt_decomposition.go:36 |
|
| 2200 | CF1906F | 《算法竞赛进阶指南》0x43 和 0x48 节 | 最大子数组和(非空) 离线 | 有 | copypasta/segment_tree.go:48 |
|
| 2200 | CF1968G2 | 注意:枚举时要做到不重不漏 | 也可以直接记忆化 | 有 | copypasta/sqrt_decomposition.go:37 |
|
| 2200 | CF2000H | 基于 295E 的性能测试: | maximum-number-of-jumps-to-reach-the-last-index maximum-sum-queries |
有 | copypasta/segment_tree.go:600 |
|
| 2200 | CF2009G2 | 懒删除堆 | max-stack most-frequent-ids |
有 | copypasta/heap.go:216 |
|
| 2200 | CF2009G2 | 单调栈二分 | find-building-where-alice-and-bob-can-meet maximum-sum-queries |
有 | copypasta/monotone_stack.go:65 |
|
| 2200 | CF2018D | 经典模型是一维区间覆盖染色,通过倒序+并查集解决 | copypasta/union_find.go:91 |
|||
| 2200 | CF2065H | 模板题 | copypasta/fenwick_tree.go:50 |
|||
| 2200 | CF2101C | 用来求 <= x 的最大剩余元素 | 有 | copypasta/union_find.go:80 |
||
| 2200 | CF2143D2 | 模板题 | 有 | copypasta/fenwick_tree.go:51 |
||
| 2300 | CF85D | 本质上属于笛卡尔树,见 cartesian_tree.go | 较为复杂的维护 | copypasta/treap.go:26 |
||
| 2300 | CF87D | 另见 graph.go 中的 MST | 有 | copypasta/union_find.go:49 |
||
| 2300 | CF87D | 树+点权/边权的顺序 | number-of-good-paths | 有 | copypasta/union_find.go:99 |
|
| 2300 | CF425D | 注意:枚举时要做到不重不漏 | 有 | copypasta/sqrt_decomposition.go:38 |
||
| 2300 | CF438D | 《算法竞赛进阶指南》0x43 和 0x48 节 | 取模 | 有 | copypasta/segment_tree.go:49 |
|
| 2300 | CF558E | 一般情况可以用于区间更新单点查询 | 代码 https://codeforces.com/problemset/submission/558/117163317 | range-module falling-squares |
有 | copypasta/odt_bst.go:13 |
| 2300 | CF558E | 【单个更新操作】 | 有 | copypasta/segment_tree.go:361 |
||
| 2300 | CF628E | 模板题 | Z 形状个数 | 有 | copypasta/fenwick_tree.go:52 |
|
| 2300 | CF677D | 注意:枚举时要做到不重不漏 | 有 | copypasta/sqrt_decomposition.go:39 |
||
| 2300 | CF713C | 思维·转换 | 使序列严格递增的最小操作次数 (+1/-1) | trapping-rain-water-ii minimum-cost-to-hire-k-workers |
有 | copypasta/heap.go:45 |
| 2300 | CF718C | 【单个更新操作】 | 矩阵乘法 ∑ | 有 | copypasta/segment_tree.go:373 |
|
| 2300 | CF786B | 这个性质可以用于优化建图 | 有 | copypasta/segment_tree.go:145 |
||
| 2300 | CF803G | 动态开点线段树·其二·延迟标记(区间修改) | copypasta/segment_tree.go:669 |
|||
| 2300 | CF817F | 一般情况可以用于区间更新单点查询 | (数据水)代码 https://codeforces.com/contest/817/submission/118365591 | range-module falling-squares |
copypasta/odt_bst.go:14 |
|
| 2300 | CF884D | 思维·转换 | 从结果倒推(类似霍夫曼编码) | minimum-cost-to-hire-k-workers | 有 | copypasta/heap.go:48 |
| 2300 | CF893F | 另见 union_find.go 中的「可持久化并查集」 | 树 时间戳 | 有 | copypasta/segment_tree.go:913 |
|
| 2300 | CF915E | 一般情况可以用于区间更新单点查询 | 代码【比较全面】https://codeforces.com/problemset/submission/915/117158161 | range-module falling-squares |
有 | copypasta/odt_bst.go:15 |
| 2300 | CF915E | 动态开点线段树·其二·延迟标记(区间修改) | (注:此题有多种解法) | 有 | copypasta/segment_tree.go:670 |
|
| 2300 | CF1093G | 《算法竞赛进阶指南》0x43 和 0x48 节 | k 维曼哈顿(单点修改+区间最大值) | 有 | copypasta/segment_tree.go:50 |
|
| 2300 | CF1096F | 归并做法见 misc.go 中的 mergeCount | 扩展:某些位置上的数待定时的逆序对的期望值 | copypasta/fenwick_tree.go:532 |
||
| 2300 | CF1167F | 模板题 | max-black-square-lcci | 有 | copypasta/fenwick_tree.go:54 |
|
| 2300 | CF1404C | 这里每个叶子 t[i] 表示 i 的个数 | 有 | copypasta/fenwick_tree.go:153 |
||
| 2300 | CF1468M | 注意:枚举时要做到不重不漏 | 或四元环 | 有 | copypasta/sqrt_decomposition.go:40 |
|
| 2300 | CF1584E | 应用见 graph.go 中的 01 最短路 | 单调双端队列 | 有 | copypasta/deque.go:9 |
|
| 2300 | CF1584E | 其他单调队列 | 有 | copypasta/monotone_queue.go:66 |
||
| 2300 | CF1654E | 注意:枚举时要做到不重不漏 | copypasta/sqrt_decomposition.go:41 |
|||
| 2300 | CF1797E | 【单个更新操作】 | phi* | copypasta/segment_tree.go:374 |
||
| 2300 | CF1849E | 这一结论可以用于思考一些双变量的题目 | 思想类似启发式合并 | copypasta/monotone_stack.go:50 |
||
| 2300 | CF1967C | 模板题 | max-black-square-lcci | copypasta/fenwick_tree.go:55 |
||
| 2400 | CF5E | 这一结论可以用于思考一些双变量的题目 | number-of-good-paths number-of-visible-people-in-a-queue |
有 | copypasta/monotone_stack.go:40 |
|
| 2400 | CF5E | 单调栈优化 DP | beautiful-towers-ii | 有 | copypasta/monotone_stack.go:100 |
|
| 2400 | CF12D | 模板题 | 三维偏序 | max-black-square-lcci | 有 | copypasta/fenwick_tree.go:56 |
| 2400 | CF115E | 【单个更新操作】 | DP | 有 | copypasta/segment_tree.go:375 |
|
| 2400 | CF121E | 【单个更新操作】 | 特殊的 update,有时候会退化成单点更新 | 有 | copypasta/segment_tree.go:376 |
|
| 2400 | CF145E | 【单个更新操作】 | 有 | copypasta/segment_tree.go:377 |
||
| 2400 | CF145E | 某些情况下可作为 Bitset 的替代品 | handling-sum-queries-after-update | 有 | copypasta/segment_tree01.go:13 |
|
| 2400 | CF220E | 归并做法见 misc.go 中的 mergeCount | 前缀+后缀 | 有 | copypasta/fenwick_tree.go:533 |
|
| 2400 | CF246E | 模板题 | max-black-square-lcci | 有 | copypasta/fenwick_tree.go:57 |
|
| 2400 | CF246E | 静态区间种类 - 离线做法 | 有 | copypasta/fenwick_tree.go:80 |
||
| 2400 | CF258E | 矩形面积并(离散化+扫描线) | 转化 | rectangle-area-ii separate-squares-ii |
有 | copypasta/segment_tree_rect.go:15 |
| 2400 | CF258E | sumLen -= t[1].minCoverLen | 转化 | 有 | copypasta/segment_tree_rect.go:147 |
|
| 2400 | CF323C | 另见 union_find.go 中的「可持久化并查集」 | 二维数点 | 有 | copypasta/segment_tree.go:914 |
|
| 2400 | CF342E | 注意:枚举时要做到不重不漏 | 有 | copypasta/sqrt_decomposition.go:42 |
||
| 2400 | CF377D | 【单个更新操作】 | 有 | copypasta/segment_tree.go:378 |
||
| 2400 | CF444C | 分块数据结构 | DZY Loves Colors 经典题 | 有 | copypasta/sqrt_decomposition.go:96 |
|
| 2400 | CF446C | 线段树二分 | https://gemini.google.com/app/62b7bb3403b692db 往上翻 | t3fKg1 subarrays-distinct-element-sum-of-squares-ii |
有 | copypasta/segment_tree.go:406 |
| 2400 | CF446C | 【单个更新操作】 | 斐波那契数列 广义斐波那契数列 https://gemini.google.com/app/62b7bb3403b692db 往上翻 | 有 | copypasta/segment_tree.go:379 |
|
| 2400 | CF498D | 《算法竞赛进阶指南》0x43 和 0x48 节 | 有 | copypasta/segment_tree.go:51 |
||
| 2400 | CF506D | 注意:枚举时要做到不重不漏 | 有 | copypasta/sqrt_decomposition.go:43 |
||
| 2400 | CF506D | 哈希表并查集 | most-stones-removed-with-same-row-or-column | 有 | copypasta/union_find.go:255 |
|
| 2400 | CF524E | 《算法竞赛进阶指南》0x43 和 0x48 节 | 扫描线 | 有 | copypasta/segment_tree.go:52 |
|
| 2400 | CF593D | 另见 graph.go 中的 MST | 单边修改,输出 floor(val / 路径边权乘积) | 有 | copypasta/union_find.go:50 |
|
| 2400 | CF749E | 归并做法见 misc.go 中的 mergeCount | 期望 贡献 | 有 | copypasta/fenwick_tree.go:534 |
|
| 2400 | CF767E | 基于堆的反悔贪心(反悔堆) | Change-free | 有 | copypasta/heap.go:88 |
|
| 2400 | CF786C | 另见 union_find.go 中的「可持久化并查集」 | 有 | copypasta/segment_tree.go:915 |
||
| 2400 | CF786C | 注意:枚举时要做到不重不漏 | 见下面的 floorDivide | 有 | copypasta/sqrt_decomposition.go:44 |
|
| 2400 | CF813E | 另见 union_find.go 中的「可持久化并查集」 | 差分 | 有 | copypasta/segment_tree.go:916 |
|
| 2400 | CF865D | 基于堆的反悔贪心(反悔堆) | 股票买卖 | 有 | copypasta/heap.go:89 |
|
| 2400 | CF869E | 二维差分树状数组 | 有 | copypasta/fenwick_tree.go:376 |
||
| 2400 | CF916E | = (m+1)∑diff[i] - ∑i*diff[i] | 有 | copypasta/fenwick_tree.go:286 |
||
| 2400 | CF939F | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | 状态设计 | 有 | copypasta/monotone_queue.go:42 |
|
| 2400 | CF990G | 另见 graph.go 中的 MST | 有 | copypasta/union_find.go:51 |
||
| 2400 | CF1000F | 另见 union_find.go 中的「可持久化并查集」 | 有 | copypasta/segment_tree.go:917 |
||
| 2400 | CF1074D | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | ? 1700! | 有 | copypasta/union_find.go:537 |
|
| 2400 | CF1080F | 另见 union_find.go 中的「可持久化并查集」 | 强制在线 | 有 | copypasta/segment_tree.go:918 |
|
| 2400 | CF1093E | 二维树状数组 | 第一维度分块,把空间复杂度从 O(n^2) 降至 O(n^2 / B) | 有 | copypasta/fenwick_tree.go:333 |
|
| 2400 | CF1093E | 动态二维数点 | 也可以分块 | 有 | copypasta/seg_in_bit.go:12 |
|
| 2400 | CF1093E | 分块数据结构 | 动态二维数点 也可以树套树 | 有 | copypasta/sqrt_decomposition.go:97 |
|
| 2400 | CF1107G | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | 有 | copypasta/monotone_queue.go:43 |
||
| 2400 | CF1114F | 【单个更新操作】 | 有 | copypasta/segment_tree.go:380 |
||
| 2400 | CF1132G | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | 有 | copypasta/monotone_queue.go:44 |
||
| 2400 | CF1132G | 另见 graph.go 中的 MST | 有 | copypasta/union_find.go:52 |
||
| 2400 | CF1132G | 经典模型是一维区间覆盖染色,通过倒序+并查集解决 | 有 | copypasta/union_find.go:92 |
||
| 2400 | CF1137D | LC142. 环形链表 II | 有 | copypasta/linked_list.go:13 |
||
| 2400 | CF1147D | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | 种类并查集 | 有 | copypasta/union_find.go:547 |
|
| 2400 | CF1166F | 另见 graph.go 中的 MST | 有 | copypasta/union_find.go:53 |
||
| 2400 | CF1187D | 《算法竞赛进阶指南》0x43 和 0x48 节 | 转换的好题 | 有 | copypasta/segment_tree.go:53 |
|
| 2400 | CF1221F | 【单个更新操作】 | 正方形覆盖点 技巧:把加点转化成加区间 | 有 | copypasta/segment_tree.go:381 |
|
| 2400 | CF1251E2 | 思维·转换 | 有 | copypasta/heap.go:49 |
||
| 2400 | CF1290C | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | 种类并查集 + 维护集合大小 | 有 | copypasta/union_find.go:548 |
|
| 2400 | CF1304F2 | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | 有 | copypasta/monotone_queue.go:45 |
||
| 2400 | CF1326E | 《算法竞赛进阶指南》0x43 和 0x48 节 | 有 | copypasta/segment_tree.go:54 |
||
| 2400 | CF1401E | 模板题 | 线段把矩形分割成多少块 | max-black-square-lcci | 有 | copypasta/fenwick_tree.go:58 |
| 2400 | CF1401F | 《算法竞赛进阶指南》0x43 和 0x48 节 | 区间 swap & reverse | 有 | copypasta/segment_tree.go:55 |
|
| 2400 | CF1436E | 联想 reverse bit 的递归思路 | 所有子数组的 mex 的 mex | 有 | copypasta/segment_tree.go:57 |
|
| 2400 | CF1609E | 在线做法是可持久化线段树(维护元素上一次出现的位置,以及区间 min) | 单点修改 + 不含子序列 abc | 有 | copypasta/segment_tree.go:64 |
|
| 2400 | CF1619H | 注意:枚举时要做到不重不漏 | 大步+小步,有点分段打表的味道 | copypasta/sqrt_decomposition.go:45 |
||
| 2400 | CF1638E | 一般情况可以用于区间更新单点查询 | Colorful Operations 结合树状数组 | falling-squares | 有 | copypasta/odt_bst.go:16 |
| 2400 | CF1638E | 【单个更新操作】 | Colorful Operations | 有 | copypasta/segment_tree.go:382 |
|
| 2400 | CF1713E | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | 转化 | 有 | copypasta/union_find.go:549 |
|
| 2400 | CF1732D2 | 懒删除堆 | 简化版懒删除堆 | max-stack most-frequent-ids |
有 | copypasta/heap.go:217 |
| 2400 | CF1736C2 | 这一结论可以用于思考一些双变量的题目 | 用的是队列,但思路是一样的 | number-of-visible-people-in-a-queue next-greater-element-iv |
有 | copypasta/monotone_stack.go:43 |
| 2400 | CF1736C2 | 如果没有,那么结果为 n | 用的是队列,但思路是一样的 | next-greater-element-iv next-greater-element-iv |
有 | copypasta/monotone_stack.go:285 |
| 2400 | CF1750E | 贡献法(计算所有子数组的……的和) | 所有括号子串变成平衡的最小操作次数总和 | sum-of-subarray-ranges maximum-subarray-min-product |
有 | copypasta/monotone_stack.go:86 |
| 2400 | CF1827B2 | 这一结论可以用于思考一些双变量的题目 | Range Sorting | number-of-visible-people-in-a-queue next-greater-element-iv |
有 | copypasta/monotone_stack.go:44 |
| 2400 | CF1827B2 | 贡献法(计算所有子数组的……的和) | Range Sorting 双单调栈 | sum-of-subarray-ranges maximum-subarray-min-product |
有 | copypasta/monotone_stack.go:87 |
| 2400 | CF1852C | 基于堆的反悔贪心(反悔堆) | 差分思想 | 有 | copypasta/heap.go:90 |
|
| 2400 | CF1905E | 趣味研究:∑ 叶子子集的 LCA | 有 | copypasta/segment_tree.go:210 |
||
| 2400 | CF1969E | 【单个更新操作】 | 有 | copypasta/segment_tree.go:383 |
||
| 2400 | CF2171H | 模板题 | max-black-square-lcci | 有 | copypasta/fenwick_tree.go:59 |
|
| 2500 | CF60D | 另见 graph.go 中的 MST | 有 | copypasta/union_find.go:54 |
||
| 2500 | CF266E | 【单个更新操作】 | k 次幂带权前缀和 | 有 | copypasta/segment_tree.go:384 |
|
| 2500 | CF295E | 在线做法是可持久化线段树(维护元素上一次出现的位置,以及区间 min) | 难度虚高 | 有 | copypasta/segment_tree.go:65 |
|
| 2500 | CF341D | 二维差分树状数组 | XOR 区间更新 区间查询 | 有 | copypasta/fenwick_tree.go:377 |
|
| 2500 | CF348C | 注意:枚举时要做到不重不漏 | 有 | copypasta/sqrt_decomposition.go:46 |
||
| 2500 | CF484E | 另见 union_find.go 中的「可持久化并查集」 | 二分,转换成找最长的已填入数字的区间,做法类似最大子段和 | 有 | copypasta/segment_tree.go:919 |
|
| 2500 | CF551E | 分块数据结构 | GukiZ and GukiZiana Go1.22 推荐块大小为 sqrt(n/5),比 sqrt(n) 快一倍 | 有 | copypasta/sqrt_decomposition.go:98 |
|
| 2500 | CF594D | 模板题 | 有 | copypasta/fenwick_tree.go:60 |
||
| 2500 | CF594D | 静态区间种类 - 离线做法 | 有 | copypasta/fenwick_tree.go:81 |
||
| 2500 | CF605D | 线段树二分 | booking-concert-tickets-in-groups find-building-where-alice-and-bob-can-meet |
有 | copypasta/segment_tree.go:119 |
|
| 2500 | CF609F | 本质上属于笛卡尔树,见 cartesian_tree.go | copypasta/treap.go:27 |
|||
| 2500 | CF618E | 【单个更新操作】 | 旋转 http://poj.org/problem?id=2991 | 有 | copypasta/segment_tree.go:385 |
|
| 2500 | CF706E | 模拟链表 | copypasta/linked_list.go:7 |
|||
| 2500 | CF739C | 【单个更新操作】 | 形状设计 | 有 | copypasta/segment_tree.go:386 |
|
| 2500 | CF837G | 另见 union_find.go 中的「可持久化并查集」 | copypasta/segment_tree.go:920 |
|||
| 2500 | CF840D | 另见 union_find.go 中的「可持久化并查集」 | 区间出现次数大于 区间长度/k 的最小元素 | 有 | copypasta/segment_tree.go:921 |
|
| 2500 | CF911G | 基于 295E 的性能测试: | merge move | maximum-number-of-jumps-to-reach-the-last-index maximum-sum-queries |
有 | copypasta/segment_tree.go:602 |
| 2500 | CF911G | 注意:枚举时要做到不重不漏 | 攒够 B 个询问才执行一次处理 | 有 | copypasta/sqrt_decomposition.go:47 |
|
| 2500 | CF963D | 且支持动态修改 s[i] | 有 | copypasta/bitset.go:383 |
||
| 2500 | CF981G | 一般情况可以用于区间更新单点查询 | copypasta/odt_bst.go:17 |
|||
| 2500 | CF992E | 模板题 | Nastya and King-Shamans si <= sj * 2,这个不等式至多成立 O(log U) 次 | 有 | copypasta/fenwick_tree.go:61 |
|
| 2500 | CF992E | 这里每个叶子 t[i] 表示 i 的个数 | 有 | copypasta/fenwick_tree.go:154 |
||
| 2500 | CF1030F | 这里每个叶子 t[i] 表示 i 的个数 | 有 | copypasta/fenwick_tree.go:155 |
||
| 2500 | CF1037F | 贡献法(计算所有子数组的……的和) | sum-of-subarray-ranges maximum-subarray-min-product |
有 | copypasta/monotone_stack.go:88 |
|
| 2500 | CF1107G | st[i][j] 对应的区间是 [i, i+2^j) | 有 | copypasta/sparse_table.go:28 |
||
| 2500 | CF1117G | 这一结论可以用于思考一些双变量的题目 | 最大子数组和 | copypasta/monotone_stack.go:51 |
||
| 2500 | CF1175F | 其他单调队列 | copypasta/monotone_queue.go:67 |
|||
| 2500 | CF1253F | 另见 graph.go 中的 MST | 启发式合并 | 有 | copypasta/union_find.go:55 |
|
| 2500 | CF1301E | 二维 ST 表 | 有 | copypasta/sparse_table.go:172 |
||
| 2500 | CF1334F | 模板题 | 有 | copypasta/fenwick_tree.go:62 |
||
| 2500 | CF1559D2 | 另见 graph.go 中的 MST | 构造 | 有 | copypasta/union_find.go:56 |
|
| 2500 | CF1665E | 在线做法是可持久化线段树(维护元素上一次出现的位置,以及区间 min) | 区间最小的 31 个数 | 有 | copypasta/segment_tree.go:66 |
|
| 2500 | CF1687C | 区间并查集 / 涂色并查集 / 刷墙并查集 | BFS | minimum-interval-to-include-each-query amount-of-new-area-painted-each-day |
有 | copypasta/union_find.go:295 |
| 2500 | CF1701F | 【单个更新操作】 | 状态设计 | 有 | copypasta/segment_tree.go:387 |
|
| 2500 | CF1771F | 另见 union_find.go 中的「可持久化并查集」 | 异或哈希 | element-appearing-more-than-25-in-sorted-array | 有 | copypasta/segment_tree.go:923 |
| 2500 | CF1771F | 动态开点主席树 | 代码 https://codeforces.com/contest/1771/submission/245657179 | 有 | copypasta/segment_tree.go:1108 |
|
| 2500 | CF1788F | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | 有 | copypasta/union_find.go:550 |
||
| 2500 | CF1840G2 | 随机+分块 | 有 | copypasta/sqrt_decomposition.go:67 |
||
| 2500 | CF1876D | 另见 graph.go 中的 MST | copypasta/union_find.go:57 |
|||
| 2500 | CF1903F | 这个性质可以用于优化建图 | copypasta/segment_tree.go:146 |
|||
| 2500 | CF1945G | 模拟 | time-to-cross-a-bridge | copypasta/heap.go:35 |
||
| 2500 | CF2117H | 在线做法是可持久化线段树(维护元素上一次出现的位置,以及区间 min) | copypasta/segment_tree.go:67 |
|||
| 2600 | CF3D | 基于堆的反悔贪心(反悔堆) | 难度虚高 | 有 | copypasta/heap.go:91 |
|
| 2600 | CF240F | 【单个更新操作】 | 有 | copypasta/segment_tree.go:388 |
||
| 2600 | CF436E | 基于堆的反悔贪心(反悔堆) | copypasta/heap.go:92 |
|||
| 2600 | CF797F | 基于堆的反悔贪心(反悔堆) | course-schedule-iii minimum-total-distance-traveled |
有 | copypasta/heap.go:74 |
|
| 2600 | CF797F | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | 有 | copypasta/monotone_queue.go:46 |
||
| 2600 | CF1110F | 【单个更新操作】 | 有 | copypasta/segment_tree.go:350 |
||
| 2600 | CF1140F | 适用于包含三类操作的题目:添加 删除 查询 | copypasta/segment_tree.go:826 |
|||
| 2600 | CF1270F | 注意:枚举时要做到不重不漏 | 有 | copypasta/sqrt_decomposition.go:48 |
||
| 2600 | CF1416D | 树+点权/边权的顺序 | DSU 重构树 | gcd-sort-of-an-array | 有 | copypasta/union_find.go:123 |
| 2600 | CF1439C | 【单个更新操作】 | =max 求和的 O(log^2) 性质 | 有 | copypasta/segment_tree.go:389 |
|
| 2600 | CF1580B | 另见单调栈 monotone_stack.go | 思想 | 有 | copypasta/cartesian_tree.go:12 |
|
| 2600 | CF1614E | 【单个更新操作】 | 有 | copypasta/segment_tree.go:390 |
||
| 2600 | CF1614E | 基于 295E 的性能测试: | todo | maximum-number-of-jumps-to-reach-the-last-index maximum-sum-queries |
有 | copypasta/segment_tree.go:603 |
| 2600 | CF1793F | 在线做法是可持久化线段树(维护元素上一次出现的位置,以及区间 min) | 和 CF765F 是同一题 | 有 | copypasta/segment_tree.go:73 |
|
| 2600 | CF1827C | 这一结论可以用于思考一些双变量的题目 | Manacher DP | 有 | copypasta/monotone_stack.go:52 |
|
| 2600 | CF2042F | 在线做法是可持久化线段树(维护元素上一次出现的位置,以及区间 min) | 两段最大子段和 | 有 | copypasta/segment_tree.go:68 |
|
| 2600 | CF2064F | 这一结论可以用于思考一些双变量的题目 | copypasta/monotone_stack.go:53 |
|||
| 2600 | CF2173F | 注意:枚举时要做到不重不漏 | copypasta/sqrt_decomposition.go:49 |
|||
| 2700 | CF13E | 分块数据结构 | 有 | copypasta/sqrt_decomposition.go:99 |
||
| 2700 | CF444E | 另见 graph.go 中的 MST | 最大化 min_{路径} 路径边权最大值 | 有 | copypasta/union_find.go:58 |
|
| 2700 | CF455D | 分块数据结构 | copypasta/sqrt_decomposition.go:100 |
|||
| 2700 | CF780G | 在线做法是可持久化线段树(维护元素上一次出现的位置,以及区间 min) | 栈 | 有 | copypasta/segment_tree.go:69 |
|
| 2700 | CF827D | 经典模型是一维区间覆盖染色,通过倒序+并查集解决 | 有 | copypasta/union_find.go:93 |
||
| 2700 | CF827D | 区间并查集 / 涂色并查集 / 刷墙并查集 | amount-of-new-area-painted-each-day | 有 | copypasta/union_find.go:296 |
|
| 2700 | CF1422E | 这一结论可以用于思考一些双变量的题目 | 有 | copypasta/monotone_stack.go:54 |
||
| 2700 | CF1730E | 贡献法(计算所有子数组的……的和) | 最大值是最小值的倍数 | maximum-subarray-min-product | 有 | copypasta/monotone_stack.go:89 |
| 2700 | CF2009G3 | 【单个更新操作】 | copypasta/segment_tree.go:391 |
|||
| 2700 | CF2026F | 用两个最小栈底对底 | 离线可持久化 | 有 | copypasta/deque_min.go:40 |
|
| 2700 | CF2104G | 适用于包含三类操作的题目:添加 删除 查询 | copypasta/segment_tree.go:827 |
|||
| 2800 | CF19D | 在线做法是可持久化线段树(维护元素上一次出现的位置,以及区间 min) | copypasta/segment_tree.go:70 |
|||
| 2800 | CF19D | 树状数组套动态开点权值线段树(AC) | range-sum-query-2d-mutable | copypasta/segment_tree.go:139 |
||
| 2800 | CF280D | 在线做法是可持久化线段树(维护元素上一次出现的位置,以及区间 min) | copypasta/segment_tree.go:71 |
|||
| 2800 | CF280D | 如果一个题目可以用分治解决,那么这个题目的带修改版本可以用线段树解决 | 用网络流的思想「反悔」 | longest-substring-of-one-repeating-character | copypasta/segment_tree.go:89 |
|
| 2800 | CF377E | 注意 last 的位置在队首左边,需要注意是否小于左边界(或者保证区间长度至少为 2) | copypasta/monotone_queue.go:47 |
|||
| 2800 | CF547E | 另见 union_find.go 中的「可持久化并查集」 | 上联:AC 自动机 fail 树 DFS 序建可持久化线段树(用树状数组也可以) | element-appearing-more-than-25-in-sorted-array | 有 | copypasta/segment_tree.go:924 |
| 2800 | CF601E | 适用于包含三类操作的题目:添加 删除 查询 | 入门题 | 有 | copypasta/segment_tree.go:828 |
|
| 2800 | CF794F | 【单个更新操作】 | 数位修改 考察对懒标记的理解 | 有 | copypasta/segment_tree.go:392 |
|
| 2800 | CF1039D | 注意:枚举时要做到不重不漏 | copypasta/sqrt_decomposition.go:50 |
|||
| 2800 | CF1635F | 模板题 | 有 | copypasta/fenwick_tree.go:63 |
||
| 2800 | CF2069F | 适用于包含三类操作的题目:添加 删除 查询 | copypasta/segment_tree.go:829 |
|||
| 2900 | CF505E | 维护最小 pi 可以用最小堆 | 有 | copypasta/heap.go:53 |
||
| 2900 | CF938G | 适用于包含三类操作的题目:添加 删除 查询 | copypasta/segment_tree.go:830 |
|||
| 3000 | CF464E | 另见 union_find.go 中的「可持久化并查集」 | 最短路 | element-appearing-more-than-25-in-sorted-array | copypasta/segment_tree.go:925 |
|
| 3000 | CF914F | 统计 [l,r) 中的 1 的个数 | 有 | copypasta/bitset.go:171 |
||
| 3000 | CF914F | 且支持动态修改 s[i] | 有 | copypasta/bitset.go:384 |
||
| 3000 | CF2043G | 分块数据结构 | copypasta/sqrt_decomposition.go:101 |
|||
| 3100 | CF765F | 在线做法是可持久化线段树(维护元素上一次出现的位置,以及区间 min) | 最小差值 | 有 | copypasta/segment_tree.go:72 |
|
| 3200 | CF482E | TIPS: 对于卡常的题目,用 findRoot 判断连通性的逻辑可以用并查集代替 | 动态修改 + 任意两点 LCA 的权值的期望 | copypasta/link_cut_tree.go:26 |
||
| 3200 | CF1209G2 | 【单个更新操作】 | todo | copypasta/segment_tree.go:393 |
||
| 3200 | CF1446F | 模板题 | copypasta/fenwick_tree.go:64 |
|||
| 3400 | CF1039E | 注意:枚举时要做到不重不漏 | copypasta/sqrt_decomposition.go:51 |
|||
| CF33D | 有时候也可以用 big.Int 代替 | (也可以用 LCA) | copypasta/bitset.go:18 |
|||
| CF44G | k-d tree: k-dimensional tree; k 维树 | copypasta/kd_tree.go:14 |
||||
| CF69E | EXTRA: 权值线段树 值域线段树 | 有 | copypasta/segment_tree.go:126 |
|||
| CF86D | 注 2:为防止块大小为 0,代码中要取 ceil(n/√m) | 有 | copypasta/mo.go:53 |
|||
| CF91E | 分块数据结构 | copypasta/sqrt_decomposition.go:92 |
||||
| CF220B | 注 2:为防止块大小为 0,代码中要取 ceil(n/√m) | 有 | copypasta/mo.go:48 |
|||
| CF292D | 树+点权/边权的顺序 | trapping-rain-water-ii | 有 | copypasta/union_find.go:107 |
||
| CF371D | 树+点权/边权的顺序 | number-of-good-paths | 有 | copypasta/union_find.go:103 |
||
| CF372C | 滑动窗口最值(固定区间大小的区间最值) | (另一种做法是用堆) | sliding-window-maximum | 有 | copypasta/monotone_queue.go:114 |
|
| CF375D | 注 2:为防止块大小为 0,代码中要取 ceil(n/√m) | 有 | copypasta/mo.go:46 |
|||
| CF455D | 替罪羊树 | copypasta/scapegoat_tree.go:21 |
||||
| CF487B | 对每个右端点,求最远的左端点,满足这一区间内的最大值减最小值不超过 limit | 有 | copypasta/monotone_queue.go:183 |
|||
| CF543D | 括号匹配/有效括号 | minimum-number-of-swaps-to-make-the-string-balanced check-if-a-parentheses-string-can-be-valid |
有 | copypasta/stack.go:24 |
||
| CF547B | EXTRA: 求所有长为 i 的子区间的最小值的最大值 | 有 | copypasta/monotone_stack.go:260 |
|||
| CF555B | 最小不相交区间划分数 | 有 | copypasta/heap.go:111 |
|||
| CF558E | t.put1(l, r, val) | 有 | copypasta/odt_bst.go:55 |
|||
| CF566D | 树+点权/边权的顺序 | trapping-rain-water-ii | 有 | copypasta/union_find.go:108 |
||
| CF600E | EXTRA: 线段树合并 | 有 | copypasta/segment_tree.go:763 |
|||
| CF629D | 树状数组的性质能使其支持动态 [1,x] 或 [x,n] 范围上的最值更新查询等操作 | 有 | copypasta/fenwick_tree.go:86 |
|||
| CF675E | 下标版本,查询返回的是区间最值的下标 | 有 | copypasta/sparse_table.go:76 |
|||
| CF702F | 伸展树 splay tree | range-xor-queries-with-subarray-reversals finding-mk-average |
copypasta/splay.go:21 |
|||
| CF706E | 十字链表 | copypasta/linked_list.go:16 |
||||
| CF754D | 最小不相交区间划分数 | 有 | copypasta/heap.go:112 |
|||
| CF786C | 时间复杂度类似整除分块 O(f(n)√n) | 有 | copypasta/sqrt_decomposition.go:158 |
|||
| CF797F | 在有多个相同转移来源 f[j] 的情况下,保证 a[j] 最大的在队首 | 有 | copypasta/monotone_queue.go:58 |
|||
| CF845C | 会议室 | 有 | copypasta/heap.go:64 |
|||
| CF845C | 最小不相交区间划分数 | 有 | copypasta/heap.go:110 |
|||
| CF859E | 树+点权/边权的顺序 | 有 | copypasta/union_find.go:115 |
|||
| CF877E | 某些情况下可作为 Bitset 的替代品 | handling-sum-queries-after-update | 有 | copypasta/segment_tree01.go:12 |
||
| CF877F | 注 2:为防止块大小为 0,代码中要取 ceil(n/√m) | copypasta/mo.go:55 |
||||
| CF884E | 树+点权/边权的顺序 | rank-transform-of-a-matrix gcd-sort-of-an-array |
copypasta/union_find.go:122 |
|||
| CF891C | 可撤销并查集 回滚并查集 | 有 | copypasta/union_find.go:702 |
|||
| CF896C | 这里用 slice 实现 O(nlogn) | 有 | copypasta/odt.go:8 |
|||
| CF914F | 右移 k 位 | 有 | copypasta/bitset.go:281 |
|||
| CF915F | 树+点权/边权的顺序 | number-of-good-paths | 有 | copypasta/union_find.go:100 |
||
| CF940E | 滑动窗口最值(固定区间大小的区间最值) | sliding-window-maximum | 有 | copypasta/monotone_queue.go:113 |
||
| CF940F | 带修莫队(支持单点修改) | 有 | copypasta/mo.go:126 |
|||
| CF962D | 哈希表:支持插入和删除,并能够按照插入顺序遍历哈希表中的元素 | 时有感而发 | 有 | copypasta/orderedset.go:6 |
||
| CF990G | 带时间戳的写法,适用于需要频繁初始化小并查集的场景 | 有 | copypasta/union_find.go:149 |
|||
| CF992E | 返回第 k 小的数(k 从 1 开始) | 有 | copypasta/fenwick_tree.go:186 |
|||
| CF1000F | 栈的应用 | 有 | copypasta/stack.go:14 |
|||
| CF1012B | 树+点权/边权的顺序 | 有 | copypasta/union_find.go:111 |
|||
| CF1092D1 | 栈的应用 | 有 | copypasta/stack.go:16 |
|||
| CF1092D2 | 栈的应用 | 有 | copypasta/stack.go:17 |
|||
| CF1106E | 调用 remove(p.hi) 可以从堆中删除 p | 有 | copypasta/heap.go:191 |
|||
| CF1107D | 判断 [l,r] 范围内的数是否全为 0 | (标准做法是二维前缀和) | 有 | copypasta/bitset.go:131 |
||
| CF1156E | 算完 perm[i] 后把 perm[i] 从链表中删掉 | 有 | copypasta/monotone_stack.go:318 |
|||
| CF1175G | 用来维护在平面直角坐标系上的线段关系,常用于斜率优化的题目 | copypasta/segment_tree.go:1126 |
||||
| CF1194E | 树状数组的性质能使其支持动态 [1,x] 或 [x,n] 范围上的最值更新查询等操作 | 有 | copypasta/fenwick_tree.go:89 |
|||
| CF1208E | 滑动窗口最值(固定区间大小的区间最值) | sliding-window-maximum | 有 | copypasta/monotone_queue.go:115 |
||
| CF1217F | 可撤销并查集 回滚并查集 | copypasta/union_find.go:703 |
||||
| CF1237D | 枚举区间左端点更为方便的情况 · 其二 | 有 | copypasta/monotone_queue.go:232 |
|||
| CF1253D | 树+点权/边权的顺序 | rank-transform-of-a-matrix gcd-sort-of-an-array |
有 | copypasta/union_find.go:119 |
||
| CF1303G | 用来维护在平面直角坐标系上的线段关系,常用于斜率优化的题目 | copypasta/segment_tree.go:1127 |
||||
| CF1466F | 树+点权/边权的顺序 | copypasta/union_find.go:112 |
||||
| CF1476G | 带修莫队(支持单点修改) | copypasta/mo.go:127 |
||||
| CF1494D | 树+点权/边权的顺序 | trapping-rain-water-ii | 有 | copypasta/union_find.go:109 |
||
| CF1609D | 维护的可以是集合的大小、最值、XOR、GCD 等 | 有 | copypasta/union_find.go:480 |
|||
| CF1635F | 树状数组的性质能使其支持动态 [1,x] 或 [x,n] 范围上的最值更新查询等操作 | 有 | copypasta/fenwick_tree.go:87 |
|||
| CF1681F | 可撤销并查集 回滚并查集 | copypasta/union_find.go:704 |
||||
| CF1701D | 最小不相交区间划分数 | 有 | copypasta/heap.go:113 |
|||
| CF1705E | 反转 [l,r) 范围内的比特 | 有 | copypasta/bitset.go:191 |
|||
| CF1705E | 某些情况下可作为 Bitset 的替代品 | handling-sum-queries-after-update | 有 | copypasta/segment_tree01.go:11 |
||
| CF1788E | 如果不存在,返回 [-1,-1] | maximum-width-ramp longest-well-performing-interval |
copypasta/monotone_stack.go:415 |
|||
| CF1824D | = (m+1)∑diff[i] - ∑i*diff[i] | copypasta/fenwick_tree.go:288 |
||||
| CF1826E | 有时候也可以用 big.Int 代替 | 有 | copypasta/bitset.go:19 |
|||
| CF1851G | 树+点权/边权的顺序 | rank-transform-of-a-matrix gcd-sort-of-an-array |
有 | copypasta/union_find.go:121 |
||
| CF1922D | 数组实现的双向链表见 monotone_stack.go 中的 permLR | 有 | copypasta/linked_list.go:19 |
|||
| CF1971G | 同一连通块内的数字从小到大排序 | 有 | copypasta/union_find.go:342 |
|||
| CF1978D | cmp 需要改成 > | 的麻烦写法 | copypasta/treap_kthsum.go:138 |
|||
| CF1978F | 预处理质因子(见 math.go 中的 primeDivisorsAll) | graph-connectivity-with-threshold largest-component-size-by-common-factor |
有 | copypasta/union_find.go:76 |
||
| CF2042F | 如果一个题目可以用分治解决,那么这个题目的带修改版本可以用线段树解决 | longest-substring-of-one-repeating-character | 有 | copypasta/segment_tree.go:88 |
||
| CF2069F | 应用:动态图连通性·离线(求 CC 个数或判断 v 和 w 是否连通) | copypasta/union_find.go:707 |
||||
| CFEDU-A | 归并做法见 misc.go 中的 mergeCount | Codeforces EDU | copypasta/fenwick_tree.go:522 |
|||
| CFEDU-A | 如果一个题目可以用分治解决,那么这个题目的带修改版本可以用线段树解决 | Codeforces EDU | copypasta/segment_tree.go:86 |
|||
| CFEDU-A | 【单个更新操作】 | Codeforces EDU | copypasta/segment_tree.go:346 |
|||
| CFEDU-A | 【多个更新操作复合】 | Codeforces EDU | copypasta/segment_tree.go:420 |
|||
| CFEDU-A | 类似算法:双栈滑动窗口 | Codeforces EDU | copypasta/sparse_table.go:118 |
|||
| CFEDU-B | 线段树二分 | Codeforces EDU | copypasta/segment_tree.go:408 |
|||
| CFEDU-B | 维护的可以是集合的大小、最值、XOR、GCD 等 | Codeforces EDU | copypasta/union_find.go:479 |
|||
| CFEDU-C | 【单个更新操作】 | Codeforces EDU | copypasta/segment_tree.go:358 |
|||
| CFEDU-C | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | Codeforces EDU | copypasta/union_find.go:552 |
|||
| CFEDU-C | 可撤销并查集 回滚并查集 | Codeforces EDU | copypasta/union_find.go:698 |
|||
| CFEDU-D | 2. 横着累加:见单调栈的做法(找上一个更大元素,在找的过程中填坑) | Codeforces EDU | copypasta/monotone_stack.go:110 |
|||
| CFEDU-D | 【单个更新操作】 | Codeforces EDU | copypasta/segment_tree.go:354 |
|||
| CFEDU-D | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | Codeforces EDU | copypasta/union_find.go:539 |
|||
| CFEDU-E | 【单个更新操作】 | Codeforces EDU | copypasta/segment_tree.go:359 |
|||
| CFEDU-F | TIPS: 对于卡常的题目,用 findRoot 判断连通性的逻辑可以用并查集代替 | Codeforces EDU | copypasta/link_cut_tree.go:25 |
|||
| CFEDU-F | 【单个更新操作】 | Codeforces EDU | copypasta/segment_tree.go:360 |
|||
| CFEDU-F | 动态开点线段树·其二·延迟标记(区间修改) | Codeforces EDU | copypasta/segment_tree.go:671 |
|||
| CFEDU-J | 那么就可以推出 2->4 的距离为 (1->3) + (3->4) - (1->2) | Codeforces EDU | copypasta/union_find.go:543 |
|||
| CF100551A | 可撤销并查集 回滚并查集 | copypasta/union_find.go:697 |
||||
| CF101234G | 维护最小 pi 可以用最小堆 | https://leetcode.cn/problems/find-the-k-sum-of-an-array/ | find-the-k-sum-of-an-array | copypasta/heap.go:60 |
||
| CF294041E | 【单个更新操作】 | copypasta/segment_tree.go:351 |
动态规划
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1083 | CF431D | 数位 DP | https://www.acwing.com/problem/content// | 有 | copypasta/dp.go:3110 |
|
| 1200 | CF327A | 状态机 DP | 有 | copypasta/dp.go:2309 |
||
| 1200 | CF1987C | 变形:改成环形数组要怎么做 | 有 | copypasta/dp.go:41 |
||
| 1300 | CF1178B | 状态机 DP | 有 | copypasta/dp.go:2310 |
||
| 1300 | CF1285B | 另一种做法是计算前缀和的最大值与最小值的差 | k-concatenation-maximum-sum | 有 | copypasta/dp.go:511 |
|
| 1300 | CF1900C | 另见树上背包 treeKnapsack | 入门 二叉树 | 有 | copypasta/dp.go:4173 |
|
| 1300 | CF2144C | 状态机 DP | 做法不止一种 | 有 | copypasta/dp.go:2311 |
|
| 1400 | CF414B | 另见 math_comb.go 中的「一些组合问题」 | 刷表法 | letter-tile-possibilities minimum-incompatibility |
有 | copypasta/dp.go:311 |
| 1400 | CF698A | 状态机 DP | 有 | copypasta/dp.go:2312 |
||
| 1400 | CF940B | 从 X 操作到 Y(部分题目也可以用 BFS) | broken-calculator minimum-number-of-days-to-eat-n-oranges |
有 | copypasta/dp.go:99 |
|
| 1400 | CF1195C | 入门视频 | min-cost-climbing-stairs house-robber |
有 | copypasta/dp.go:30 |
|
| 1400 | CF1350B | 这样能更容易地看出转移的顺序,然后变成一个 DAG 上求最长路的问题 | 有 | copypasta/dp.go:842 |
||
| 1400 | CF1461B | 状态设计 | copypasta/dp.go:197 |
|||
| 1400 | CF2033C | 状态机 DP | 有 | copypasta/dp.go:2313 |
||
| 1400 | CF2034C | 记忆化搜索 | 有 | copypasta/dp.go:85 |
||
| 1400 | CF2114E | 另一种做法是计算前缀和的最大值与最小值的差 | 树上最大交替子段和 | k-concatenation-maximum-sum | 有 | copypasta/dp.go:512 |
| 1400 | CF2114E | 另见树上背包 treeKnapsack | 树上最大交替子段和 自顶向下 | symmetric-tree | 有 | copypasta/dp.go:4176 |
| 1500 | CF212E | 关于「超大背包问题」见 search.go | 有 | copypasta/dp.go:1391 |
||
| 1500 | CF553A | 状态设计 | 有 | copypasta/dp.go:198 |
||
| 1500 | CF855B | 状态机 DP | copypasta/dp.go:2314 |
|||
| 1500 | CF982C | 另见树上背包 treeKnapsack | symmetric-tree | 有 | copypasta/dp.go:4177 |
|
| 1500 | CF991D | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 迷你状压 | 有 | copypasta/dp.go:2473 |
|
| 1500 | CF1005D | 划分型 DP ① 最优分割 | palindrome-partitioning-ii | 有 | copypasta/dp.go:2089 |
|
| 1500 | CF1547E | 变形:改成环形数组要怎么做 | 两次扫描 | 有 | copypasta/dp.go:42 |
|
| 1500 | CF1673C | 完全背包 EXTRA: 方案数 | coin-change-ii | 有 | copypasta/dp.go:1611 |
|
| 1500 | CF1881E | 变形:改成环形数组要怎么做 | 有 | copypasta/dp.go:43 |
||
| 1500 | CF2050E | 见下面的「最长公共子序列」,包含大量扩展题目 | 有 | copypasta/dp.go:59 |
||
| 1500 | CF2069C | 状态机 DP | 有 | copypasta/dp.go:2315 |
||
| 1500 | CF2107C | 另一种做法是计算前缀和的最大值与最小值的差 | 构造 | k-concatenation-maximum-sum | 有 | copypasta/dp.go:513 |
| 1500 | CF2115A | 多维 DP | 也可以 BFS,或者更快的做法 | 有 | copypasta/dp.go:62 |
|
| 1500 | CF2121E | 数位 DP | 有 | copypasta/dp.go:3105 |
||
| 1600 | CF369C | 另见树上背包 treeKnapsack | symmetric-tree | 有 | copypasta/dp.go:4178 |
|
| 1600 | CF446A | 状态机 DP | count-number-of-special-subsequences | 有 | copypasta/dp.go:2317 |
|
| 1600 | CF763A | 换根 DP / 二次扫描法 | (有更巧妙的做法) | minimum-height-trees sum-of-distances-in-tree |
有 | copypasta/dp.go:4592 |
| 1600 | CF788A | 另一种做法是计算前缀和的最大值与最小值的差 | k-concatenation-maximum-sum | 有 | copypasta/dp.go:514 |
|
| 1600 | CF1373D | 另一种做法是计算前缀和的最大值与最小值的差 | k-concatenation-maximum-sum | 有 | copypasta/dp.go:515 |
|
| 1600 | CF1689C | 另见树上背包 treeKnapsack | 二叉树 | symmetric-tree | 有 | copypasta/dp.go:4179 |
| 1600 | CF1714D | 划分型 DP ① 最优分割 | 允许重叠 输出方案 | palindrome-partitioning-ii | 有 | copypasta/dp.go:2090 |
| 1600 | CF1741E | 变形:改成环形数组要怎么做 | 有 | copypasta/dp.go:44 |
||
| 1600 | CF1875D | 变形:改成环形数组要怎么做 | 有 | copypasta/dp.go:45 |
||
| 1600 | CF1994C | 变形:改成环形数组要怎么做 | 结合滑窗 | 有 | copypasta/dp.go:46 |
|
| 1600 | CF2043C | 另一种做法是计算前缀和的最大值与最小值的差 | 介值定理 | k-concatenation-maximum-sum | 有 | copypasta/dp.go:516 |
| 1600 | CF2061C | 变形:改成环形数组要怎么做 | 也可以状态机 DP | 有 | copypasta/dp.go:47 |
|
| 1600 | CF2061C | 状态机 DP | 也可以线性 DP | count-number-of-special-subsequences | 有 | copypasta/dp.go:2318 |
| 1600 | CF2070D | 另见树上背包 treeKnapsack | symmetric-tree | 有 | copypasta/dp.go:4180 |
|
| 1600 | CF2125D | 在本题中,选或不选不是人为决定的,而是由概率决定的 | 入门题 | 有 | copypasta/dp.go:2395 |
|
| 1600 | CF2167G | 这样能更容易地看出转移的顺序,然后变成一个 DAG 上求最长路的问题 | 有 | copypasta/dp.go:843 |
||
| 1600 | CF2193F | 网格路径问题 网格图 DP | 三方向移动 | cherry-pickup cherry-pickup-ii |
有 | copypasta/dp.go:165 |
| 1600 | CF2193F | 状态机 DP | 三方向移动 | count-number-of-special-subsequences | 有 | copypasta/dp.go:2319 |
| 1600 | CF2242D | 最长公共子序列 (LCS) | shortest-common-supersequence minimum-operations-to-make-a-subsequence |
有 | copypasta/dp.go:739 |
|
| 1700 | CF4D | 更简单的做法是用线段树 | 二维 LIS + 打印方案 | minimum-number-of-increasing-subsequence-to-be-removed minimum-operations-to-make-a-subsequence |
有 | copypasta/dp.go:887 |
| 1700 | CF163A | 最长公共子序列 (LCS) | 其中一个改为子串 | shortest-common-supersequence minimum-operations-to-make-a-subsequence |
有 | copypasta/dp.go:740 |
| 1700 | CF219D | 换根 DP / 二次扫描法 | minimum-height-trees sum-of-distances-in-tree |
有 | copypasta/dp.go:4593 |
|
| 1700 | CF269B | 更简单的做法是用线段树 | 建模 | minimum-number-of-increasing-subsequence-to-be-removed minimum-operations-to-make-a-subsequence |
有 | copypasta/dp.go:885 |
| 1700 | CF1516C | 关于「超大背包问题」见 search.go | 转换 | 有 | copypasta/dp.go:1392 |
|
| 1700 | CF1554B | 判断是否有两个子集满足 x&y=0 且 idx[x]>=0 且 idx[y]>=0 | 求下标最大次大,与 k 大小无关的写法 | 有 | copypasta/dp.go:2896 |
|
| 1700 | CF1695C | 网格路径问题 网格图 DP | 变形:连续性 & 上下界思想 | unique-paths-ii minimum-path-sum |
有 | copypasta/dp.go:153 |
| 1700 | CF1822F | 换根 DP / 二次扫描法 | minimum-edge-reversals-so-every-node-is-reachable count-number-of-possible-root-nodes |
有 | copypasta/dp.go:4596 |
|
| 1700 | CF1822F | 换根 DP · 其二(维护最大次大) | time-taken-to-mark-all-nodes | 有 | copypasta/dp.go:4715 |
|
| 1700 | CF1822F | 使用时根据题目修改 data unit moveEdge merge | 有 | copypasta/dp.go:4780 |
||
| 1700 | CF1826D | 状态机 DP | 式子变形 | count-number-of-special-subsequences | 有 | copypasta/dp.go:2321 |
| 1700 | CF1881F | 树的直径(两遍 DFS 求法另见 graph_tree.go 中的 diameter) | diameter-of-binary-tree amount-of-time-for-binary-tree-to-be-infected |
有 | copypasta/dp.go:4223 |
|
| 1700 | CF1893B | 更简单的做法是用线段树 | 插入后最小化 LIS | minimum-number-of-increasing-subsequence-to-be-removed minimum-operations-to-make-a-subsequence |
有 | copypasta/dp.go:888 |
| 1700 | CF1969C | 部分题目可以用 WQS 二分(或者四边形不等式)优化 | sum-of-k-subarrays-with-length-at-least-m minimum-operations-to-make-elements-within-k-subarrays-equal |
有 | copypasta/dp.go:2120 |
|
| 1700 | CF2027D1 | 多维 DP | 有 | copypasta/dp.go:63 |
||
| 1700 | CF2029C | 状态机 DP | 有 | copypasta/dp.go:2323 |
||
| 1700 | CF2052F | 状态机 DP | 地板镶嵌 | count-number-of-special-subsequences | 有 | copypasta/dp.go:2322 |
| 1700 | CF2086D | 关于「超大背包问题」见 search.go | 有 | copypasta/dp.go:1393 |
||
| 1800 | CF30C | 变形:改成环形数组要怎么做 | 有 | copypasta/dp.go:48 |
||
| 1800 | CF33C | 另一种做法是计算前缀和的最大值与最小值的差 | 有 | copypasta/dp.go:517 |
||
| 1800 | CF245H | 另见 LPS | 有 | copypasta/dp.go:2184 |
||
| 1800 | CF580D | 旅行商问题 travelling salesman problem TSP | 有 | copypasta/dp.go:2639 |
||
| 1800 | CF743D | 另见树上背包 treeKnapsack | symmetric-tree | 有 | copypasta/dp.go:4181 |
|
| 1800 | CF1083A | 另见树上背包 treeKnapsack | 有 | copypasta/dp.go:4182 |
||
| 1800 | CF1286A | 状态设计 | 有 | copypasta/dp.go:199 |
||
| 1800 | CF1324F | 换根 DP / 二次扫描法 | 类似最大子数组和 | minimum-edge-reversals-so-every-node-is-reachable count-number-of-possible-root-nodes |
有 | copypasta/dp.go:4597 |
| 1800 | CF1324F | 记录子树大小 size[v] 和子树每个节点的深度之和 sum(dep[sub]) | 类似最大子数组和 | 有 | copypasta/dp.go:4628 |
|
| 1800 | CF1381B | 关于「超大背包问题」见 search.go | 转换 | 有 | copypasta/dp.go:1394 |
|
| 1800 | CF1446B | 最长公共子序列 (LCS) | shortest-common-supersequence minimum-operations-to-make-a-subsequence |
有 | copypasta/dp.go:741 |
|
| 1800 | CF1509C | 另见 LPS | 有 | copypasta/dp.go:2185 |
||
| 1800 | CF1525D | 预处理 | 选或不选 [·hot10] | 有 | copypasta/dp.go:112 |
|
| 1800 | CF1582F1 | 更简单的做法是用线段树 | minimum-operations-to-make-a-subsequence | 有 | copypasta/dp.go:889 |
|
| 1800 | CF1833G | 另见树上背包 treeKnapsack | copypasta/dp.go:4183 |
|||
| 1800 | CF1845D | 另一种做法是计算前缀和的最大值与最小值的差 | 本质是去掉一个最小的子段 | copypasta/dp.go:518 |
||
| 1800 | CF1862F | 关于「超大背包问题」见 search.go | 有 | copypasta/dp.go:1395 |
||
| 1800 | CF1912K | 合法子序列 DP | 有 | copypasta/dp.go:1242 |
||
| 1800 | CF1954D | 关于「超大背包问题」见 search.go | 有 | copypasta/dp.go:1396 |
||
| 1800 | CF1974E | 时间复杂度 O(n * sum(values)) 或 O(n^2 * maxV) | 有 | copypasta/dp.go:1557 |
||
| 1800 | CF1987D | 状态设计 | 有 | copypasta/dp.go:200 |
||
| 1800 | CF2081A | 状态机 DP | 有 | copypasta/dp.go:2324 |
||
| 1800 | CF2081A | 在本题中,选或不选不是人为决定的,而是由概率决定的 | 转化成概率 DP | 有 | copypasta/dp.go:2396 |
|
| 1800 | CF2081A | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 有 | copypasta/dp.go:2423 |
||
| 1800 | CF2091F | 逆序对为 k 时的排列个数 | count-the-number-of-inversions | 有 | copypasta/dp.go:3826 |
|
| 1800 | CF2145D | 多维 DP | 构造 | 有 | copypasta/dp.go:64 |
|
| 1900 | CF14E | 状态设计 | copypasta/dp.go:201 |
|||
| 1900 | CF16E | 在本题中,选或不选不是人为决定的,而是由概率决定的 | 有 | copypasta/dp.go:2397 |
||
| 1900 | CF16E | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 与概率 DP 结合 | 有 | copypasta/dp.go:2474 |
|
| 1900 | CF19B | f[0] 表示至少为 0 的情况,也表示没有任何约束的情况 | 有 | copypasta/dp.go:1465 |
||
| 1900 | CF46E | 逆序对为 k 时的排列个数 | 前缀最大值/后缀最大值 | count-the-number-of-inversions count-routes-to-climb-a-rectangular-grid |
有 | copypasta/dp.go:3828 |
| 1900 | CF67D | 更简单的做法是用线段树 | 最多相交问题 典题 | minimum-operations-to-make-a-subsequence | 有 | copypasta/dp.go:890 |
| 1900 | CF109C | 换根 DP / 二次扫描法 | 也有组合数学做法 | minimum-edge-reversals-so-every-node-is-reachable count-number-of-possible-root-nodes |
有 | copypasta/dp.go:4598 |
| 1900 | CF109C | 记录子树大小 size[v] 和子树每个节点的深度之和 sum(dep[sub]) | 也有组合数学做法 | 有 | copypasta/dp.go:4629 |
|
| 1900 | CF137D | 部分题目可以用 WQS 二分(或者四边形不等式)优化 | 输出具体方案 | sum-of-k-subarrays-with-length-at-least-m minimum-operations-to-make-elements-within-k-subarrays-equal |
有 | copypasta/dp.go:2121 |
| 1900 | CF148E | 分组背包·每组至多选一个(恰好选一个见后面) | 有 | copypasta/dp.go:1777 |
||
| 1900 | CF149D | 另见 LPS | 有 | copypasta/dp.go:2186 |
||
| 1900 | CF366C | f[i][j] 表示前 i 个数,凑成 j 的所有方案中,最小下标的最大值 | partition-equal-subset-sum | 有 | copypasta/dp.go:1418 |
|
| 1900 | CF404D | 多维 DP | 有 | copypasta/dp.go:65 |
||
| 1900 | CF404D | 状态机 DP | 有 | copypasta/dp.go:2325 |
||
| 1900 | CF417D | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 基础状压 | 有 | copypasta/dp.go:2475 |
|
| 1900 | CF452D | 状态设计 | 题解 https://www.luogu.com.cn/blog/endlesscheng/solution-cf452d | 有 | copypasta/dp.go:202 |
|
| 1900 | CF463D | 最长公共子序列 (LCS) | 多个排列的 LCS | shortest-common-supersequence minimum-operations-to-make-a-subsequence |
有 | copypasta/dp.go:742 |
| 1900 | CF479E | 逆序对为 k 时的排列个数 | count-the-number-of-inversions count-routes-to-climb-a-rectangular-grid |
有 | copypasta/dp.go:3829 |
|
| 1900 | CF540D | 在本题中,选或不选不是人为决定的,而是由概率决定的 | 有 | copypasta/dp.go:2398 |
||
| 1900 | CF577B | 关于「超大背包问题」见 search.go | 抽屉原理 | 有 | copypasta/dp.go:1398 |
|
| 1900 | CF582B | 更简单的做法是用线段树 | 重复数组的 LIS | 有 | copypasta/dp.go:893 |
|
| 1900 | CF597C | 数据结构优化 DP | 长为 k 的上升子序列个数 | 有 | copypasta/dp.go:3797 |
|
| 1900 | CF607B | 另见 LPS | 回文消除 | 有 | copypasta/dp.go:2187 |
|
| 1900 | CF687C | 状态设计 | 有 | copypasta/dp.go:203 |
||
| 1900 | CF687C | 关于「超大背包问题」见 search.go | 恰好组成 k 的数中能恰好组成哪些数 | 有 | copypasta/dp.go:1399 |
|
| 1900 | CF835D | 一般用于 DP 预处理 | palindrome-partitioning-ii | 有 | copypasta/dp.go:1300 |
|
| 1900 | CF1012C | 状态设计 | 有 | copypasta/dp.go:204 |
||
| 1900 | CF1092F | 换根 DP / 二次扫描法 | minimum-edge-reversals-so-every-node-is-reachable count-number-of-possible-root-nodes |
有 | copypasta/dp.go:4599 |
|
| 1900 | CF1114D | 最长公共子序列 (LCS) | 转换【巧妙】 | 有 | copypasta/dp.go:744 |
|
| 1900 | CF1114D | 另见 LPS | palindrome-removal | 有 | copypasta/dp.go:2190 |
|
| 1900 | CF1155D | 另一种做法是计算前缀和的最大值与最小值的差 | 有 | copypasta/dp.go:519 |
||
| 1900 | CF1183H | 返回一个数组 sumF,其中 sumF[k] 表示长度为 k 的本质不同子序列个数 | 有 | copypasta/dp.go:1270 |
||
| 1900 | CF1197D | 另一种做法是计算前缀和的最大值与最小值的差 | 思路 https://docs.qq.com/sheet/DWGFoRGVZRmxNaXFz 里面搜本题链接 | 有 | copypasta/dp.go:520 |
|
| 1900 | CF1613D | 状态机 DP | 爽 | 有 | copypasta/dp.go:2326 |
|
| 1900 | CF1739D | 另见树上背包 treeKnapsack | 二分答案 | 有 | copypasta/dp.go:4184 |
|
| 1900 | CF1794D | 另见 math_comb.go 中的「一些组合问题」 | letter-tile-possibilities minimum-incompatibility |
有 | copypasta/dp.go:312 |
|
| 1900 | CF1801C | 不相交区间 DP | 有 | copypasta/dp.go:132 |
||
| 1900 | CF1882D | 换根 DP / 二次扫描法 | minimum-edge-reversals-so-every-node-is-reachable count-number-of-possible-root-nodes |
有 | copypasta/dp.go:4600 |
|
| 1900 | CF1926G | 另见树上背包 treeKnapsack | 有 | copypasta/dp.go:4185 |
||
| 1900 | CF1950G | 时间复杂度通常是 O(n^2*2^n) | 有 | copypasta/dp.go:2584 |
||
| 1900 | CF2000F | 分组背包·每组至多选一个(恰好选一个见后面) | 至少 | 有 | copypasta/dp.go:1778 |
|
| 1900 | CF2049D | 网格路径问题 网格图 DP | rotate 每行 | unique-paths-ii minimum-path-sum |
有 | copypasta/dp.go:155 |
| 2000 | CF8C | 旅行商问题 travelling salesman problem TSP | 有 | copypasta/dp.go:2640 |
||
| 2000 | CF66E | 数据结构优化 DP | copypasta/dp.go:3798 |
|||
| 2000 | CF75D | 另一种做法是计算前缀和的最大值与最小值的差 | 多个小数组合并 | 有 | copypasta/dp.go:523 |
|
| 2000 | CF213C | 网格路径问题 网格图 DP | triangle cherry-pickup |
有 | copypasta/dp.go:160 |
|
| 2000 | CF235B | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 有 | copypasta/dp.go:2424 |
||
| 2000 | CF264C | 维护最大次大 | minimum-number-of-operations-to-satisfy-conditions | 有 | copypasta/dp.go:3815 |
|
| 2000 | CF337D | 换根 DP / 二次扫描法 | count-number-of-possible-root-nodes | 有 | copypasta/dp.go:4601 |
|
| 2000 | CF346B | 最长公共子序列 (LCS) | 与 KMP 结合 | 有 | copypasta/dp.go:745 |
|
| 2000 | CF360B | 状态设计 | 有 | copypasta/dp.go:205 |
||
| 2000 | CF401D | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 有 | copypasta/dp.go:2476 |
||
| 2000 | CF453B | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 与质因数分解结合 | 有 | copypasta/dp.go:2477 |
|
| 2000 | CF461B | 状态设计 | 有 | copypasta/dp.go:206 |
||
| 2000 | CF461B | 另见树上背包 treeKnapsack | 如何定义状态 | 有 | copypasta/dp.go:4187 |
|
| 2000 | CF571B | 状态设计 | copypasta/dp.go:207 |
|||
| 2000 | CF855C | 另见树上背包 treeKnapsack | copypasta/dp.go:4186 |
|||
| 2000 | CF864E | 关于「超大背包问题」见 search.go | 打印方案 | 有 | copypasta/dp.go:1400 |
|
| 2000 | CF895C | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 有 | copypasta/dp.go:2478 |
||
| 2000 | CF958C2 | 逆序对为 k 时的排列个数 | count-routes-to-climb-a-rectangular-grid | 有 | copypasta/dp.go:3831 |
|
| 2000 | CF1082E | 另一种做法是计算前缀和的最大值与最小值的差 | 需要一些转换技巧 | 有 | copypasta/dp.go:521 |
|
| 2000 | CF1132F | 另见 LPS | palindrome-removal | 有 | copypasta/dp.go:2192 |
|
| 2000 | CF1142B | 倍增 | path-existence-queries-in-a-graph-ii | 有 | copypasta/dp.go:3657 |
|
| 2000 | CF1296E2 | 更简单的做法是用线段树 | 转化成最小划分数+打印划分方案 | 有 | copypasta/dp.go:896 |
|
| 2000 | CF1408D | 状态设计 | 有 | copypasta/dp.go:208 |
||
| 2000 | CF1624E | 变形:改成环形数组要怎么做 | 有 | copypasta/dp.go:40 |
||
| 2000 | CF1646D | 变形:同一层至多选一个节点(蓝桥杯) | 输出具体方案 | 有 | copypasta/dp.go:4467 |
|
| 2000 | CF1753C | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 有 | copypasta/dp.go:2425 |
||
| 2000 | CF1783D | 状态设计 | 推公式 | 有 | copypasta/dp.go:209 |
|
| 2000 | CF1920E | 多维 DP | 有 | copypasta/dp.go:66 |
||
| 2000 | CF1923E | 另见树上背包 treeKnapsack | 两端点颜色相同,中间节点颜色不等于两端点 | 有 | copypasta/dp.go:4188 |
|
| 2000 | CF1988D | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 有 | copypasta/dp.go:4190 |
||
| 2000 | CF1988D | 变形:同一层至多选一个节点(蓝桥杯) | 相似,但不完全是 | 有 | copypasta/dp.go:4468 |
|
| 2000 | CF2014F | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 推荐 经典状态机 | 有 | copypasta/dp.go:4191 |
|
| 2000 | CF2075D | 关于「超大背包问题」见 search.go | 双背包 恰好装满+至少装满 | 有 | copypasta/dp.go:1401 |
|
| 2000 | CF2075D | f[0] 表示至少为 0 的情况,也表示没有任何约束的情况 | 双背包 恰好装满+至少装满 | painting-the-walls | 有 | copypasta/dp.go:1467 |
| 2000 | CF2114F | 变形:改成环形数组要怎么做 | 有 | copypasta/dp.go:49 |
||
| 2000 | CF2194E | 网格路径问题 网格图 DP | 修改一个格子后的最大路径和的最小值 | cherry-pickup-ii | 有 | copypasta/dp.go:166 |
| 2100 | CF56D | 输出具体方案 | 有 | copypasta/dp.go:89 |
||
| 2100 | CF56D | 最长公共子序列 (LCS) | edit-distance one-edit-distance |
有 | copypasta/dp.go:734 |
|
| 2100 | CF229D | 决策单调性优化 DP | stone-game-v | copypasta/dp.go:4127 |
||
| 2100 | CF238C | 记录子树大小 size[v] 和子树每个节点的深度之和 sum(dep[sub]) | 有 O(n) 做法 | 有 | copypasta/dp.go:4630 |
|
| 2100 | CF319C | 思考:三维凸包优化 DP? | 有 | copypasta/dp.go:3895 |
||
| 2100 | CF734E | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 巧妙的转换 | 有 | copypasta/dp.go:4192 |
|
| 2100 | CF791D | 换根 DP / 二次扫描法 | 有 | copypasta/dp.go:4602 |
||
| 2100 | CF791D | 记录子树大小 size[v] 和子树每个节点的深度之和 sum(dep[sub]) | 任意两点距离除以 k 的上取整之和 | 有 | copypasta/dp.go:4631 |
|
| 2100 | CF960F | 在一维 LIS 的基础上,a[i] 可以从多个数中选一个,问 LIS 最长可以多长 | 图上的路径的 LIS | 有 | copypasta/dp.go:902 |
|
| 2100 | CF985E | 滑动窗口优化 DP | 有 | copypasta/dp.go:3845 |
||
| 2100 | CF1025D | 状态设计 | 有 | copypasta/dp.go:210 |
||
| 2100 | CF1025D | 另见 LPS | 状态设计 | palindrome-removal | 有 | copypasta/dp.go:2193 |
| 2100 | CF1027E | 状态设计 | 有 | copypasta/dp.go:211 |
||
| 2100 | CF1029E | 下面的定义省去了(……时的最小支配集的元素个数) w 为 i 的儿子 | binary-tree-cameras | 有 | copypasta/dp.go:4518 |
|
| 2100 | CF1117D | 数据结构优化 DP | 矩阵快速幂 | 有 | copypasta/dp.go:3799 |
|
| 2100 | CF1185G1 | 时间复杂度通常是 O(n^2*2^n) | 有 | copypasta/dp.go:2585 |
||
| 2100 | CF1187E | 换根 DP / 二次扫描法 | 有 | copypasta/dp.go:4603 |
||
| 2100 | CF1370E | 这题做法需要用到上面说到的第二种思路 | 转换 | copypasta/dp.go:525 |
||
| 2100 | CF1516D | 倍增 | path-existence-queries-in-a-graph-ii | copypasta/dp.go:3658 |
||
| 2100 | CF1575L | 在一维 LIS 的基础上,a[i] 可以从多个数中选一个,问 LIS 最长可以多长 | 删除元素使得 a[i] = i 尽量多 | 有 | copypasta/dp.go:903 |
|
| 2100 | CF1667B | 数据结构优化 DP | 有 | copypasta/dp.go:3800 |
||
| 2100 | CF1767C | 另见 math_comb.go 中的「一些组合问题」 | 带约束的计数 DP | letter-tile-possibilities minimum-incompatibility |
copypasta/dp.go:313 |
|
| 2100 | CF1771D | 最长回文子序列 (LPS) | count-different-palindromic-subsequences minimum-insertion-steps-to-make-a-string-palindrome |
有 | copypasta/dp.go:2216 |
|
| 2100 | CF1778D | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 有 | copypasta/dp.go:2426 |
||
| 2100 | CF2051G | 时间复杂度通常是 O(n^2*2^n) | copypasta/dp.go:2586 |
|||
| 2100 | CF2074G | 另见 LPS | palindrome-removal | 有 | copypasta/dp.go:2194 |
|
| 2100 | CF2161D | 入门视频 | house-robber delete-and-earn |
有 | copypasta/dp.go:32 |
|
| 2200 | CF11D | 无向图简单环数量 | 有 | copypasta/dp.go:2708 |
||
| 2200 | CF13C | 同上,把这个序列视作 1 2 2 4 2 2,总的修改次数仍然为 11 | 有 | copypasta/dp.go:656 |
||
| 2200 | CF165E | 判断是否有两个子集满足 x&y=0 且 idx[x]>=0 且 idx[y]>=0 | 有 | copypasta/dp.go:2897 |
||
| 2200 | CF377C | 下面的写法常数是 1/2 | 枚举来源 | beautiful-arrangement | 有 | copypasta/dp.go:2542 |
| 2200 | CF385D | 下面的写法常数是 1/2 | 计算几何 | beautiful-arrangement | 有 | copypasta/dp.go:2543 |
| 2200 | CF486E | 在一维 LIS 的基础上,a[i] 可以从多个数中选一个,问 LIS 最长可以多长 | 将所有 a[i] 分成三类:不在任何 LIS 中 / 在至少一个 LIS 中 / 在所有 LIS 中 | 有 | copypasta/dp.go:904 |
|
| 2200 | CF538E | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | **如何转移 | 有 | copypasta/dp.go:4193 |
|
| 2200 | CF645E | 本质不同非空子序列个数 | 需要一点构造能力 | distinct-subsequences-ii number-of-unique-good-subsequences |
有 | copypasta/dp.go:1251 |
| 2200 | CF678E | 在本题中,选或不选不是人为决定的,而是由概率决定的 | 有 | copypasta/dp.go:2399 |
||
| 2200 | CF743E | 下面的写法常数是 1/2 | 状态设计 | 有 | copypasta/dp.go:2544 |
|
| 2200 | CF833B | 数据结构优化 DP | 有 | copypasta/dp.go:3801 |
||
| 2200 | CF903F | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 轮廓线 | 有 | copypasta/dp.go:2479 |
|
| 2200 | CF903F | 训练指南 6.1 | 有 | copypasta/dp.go:3005 |
||
| 2200 | CF908D | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 有 | copypasta/dp.go:2427 |
||
| 2200 | CF946E | 思维扩展 | 重排成回文串 | 有 | copypasta/dp.go:3185 |
|
| 2200 | CF981E | 关于「超大背包问题」见 search.go | 转移对象是下标 | 有 | copypasta/dp.go:1403 |
|
| 2200 | CF1097D | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 有 | copypasta/dp.go:2428 |
||
| 2200 | CF1175E | 倍增 | path-existence-queries-in-a-graph-ii | 有 | copypasta/dp.go:3659 |
|
| 2200 | CF1215E | 下面的写法常数是 1/2 | 有 | copypasta/dp.go:2545 |
||
| 2200 | CF1220E | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 可以重复走 | 有 | copypasta/dp.go:4194 |
|
| 2200 | CF1234F | 判断是否有两个子集满足 x&y=0 且 idx[x]>=0 且 idx[y]>=0 | 有 | copypasta/dp.go:2898 |
||
| 2200 | CF1238E | 下面的写法常数是 1/2 | 式子变形 | 有 | copypasta/dp.go:2546 |
|
| 2200 | CF1238F | 树的直径(两遍 DFS 求法另见 graph_tree.go 中的 diameter) | diameter-of-binary-tree amount-of-time-for-binary-tree-to-be-infected |
有 | copypasta/dp.go:4224 |
|
| 2200 | CF1249F | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 好题 | copypasta/dp.go:4195 |
||
| 2200 | CF1295E | 数据结构优化 DP | 有 | copypasta/dp.go:3803 |
||
| 2200 | CF1303E | 多维 DP | 状态设计 经典题 | 有 | copypasta/dp.go:67 |
|
| 2200 | CF1336C | 另见 LPS | 状态设计 | 有 | copypasta/dp.go:2195 |
|
| 2200 | CF1468A | 在一维 LIS 的基础上,a[i] 可以从多个数中选一个,问 LIS 最长可以多长 | LaIS 与单调栈结合 | 有 | copypasta/dp.go:909 |
|
| 2200 | CF1515E | 插入 DP / 连续段 DP | 有 | copypasta/dp.go:135 |
||
| 2200 | CF1552F | 优化空间时,可以直接把前缀和保存到 f 数组上,然后倒序遍历,计算实际的 f | 数据加强 | count-the-number-of-inversions number-of-ways-to-separate-numbers |
有 | copypasta/dp.go:3821 |
| 2200 | CF1579G | 状态设计 | 有 | copypasta/dp.go:212 |
||
| 2200 | CF1627E | 变形:改成环形数组要怎么做 | 刷表法 双指针 | 有 | copypasta/dp.go:50 |
|
| 2200 | CF1650F | 时间复杂度 O(n * sum(values)) 或 O(n^2 * maxV) | 有 | copypasta/dp.go:1558 |
||
| 2200 | CF1788E | 数据结构优化 DP | copypasta/dp.go:3804 |
|||
| 2200 | CF2027D2 | 多维 DP | 在 DP 数组上滑窗 | 有 | copypasta/dp.go:68 |
|
| 2200 | CF2045H | 多维 DP | 有 | copypasta/dp.go:69 |
||
| 2200 | CF2060F | 另见 math_comb.go 中的「一些组合问题」 | letter-tile-possibilities minimum-incompatibility |
copypasta/dp.go:314 |
||
| 2200 | CF2143D2 | 数据结构优化 DP | 两个递增子序列 二维树状数组优化 DP | 有 | copypasta/dp.go:3805 |
|
| 2300 | CF327E | 下面的写法常数是 1/2 | 卡常优化 另一种做法是折半枚举 | 有 | copypasta/dp.go:2547 |
|
| 2300 | CF543D | 换根 DP / 二次扫描法 | 注意不存在逆元的情形 | 有 | copypasta/dp.go:4604 |
|
| 2300 | CF543D | 使用时根据题目修改 data unit moveEdge merge | 有 | copypasta/dp.go:4781 |
||
| 2300 | CF570E | 网格路径问题 网格图 DP | cherry-pickup cherry-pickup-ii |
有 | copypasta/dp.go:164 |
|
| 2300 | CF623B | 状态机 DP | 有 | copypasta/dp.go:2327 |
||
| 2300 | CF713C | 同上,把这个序列视作 1 2 2 4 2 2,总的修改次数仍然为 11 | 严格单调递增 https://codeforces.com/blog/entry/47094?#comment-315161 | make-array-non-decreasing-or-non-increasing | 有 | copypasta/dp.go:659 |
| 2300 | CF1073E | 返回 [low, high] 中的所有元素的价值总和 | 有 | copypasta/dp.go:3374 |
||
| 2300 | CF1198D | 另见 LPS | 二维区间 DP | 有 | copypasta/dp.go:2197 |
|
| 2300 | CF1203F2 | 关于「超大背包问题」见 search.go | 排序+转换 | 有 | copypasta/dp.go:1404 |
|
| 2300 | CF1245F | 贪心:求 <= N 的最大数 | 二维(互相独立) | count-beautiful-numbers | 有 | copypasta/dp.go:3156 |
| 2300 | CF1292C | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 有 | copypasta/dp.go:4196 |
||
| 2300 | CF1316E | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 与排序贪心结合 | 有 | copypasta/dp.go:2480 |
|
| 2300 | CF1453E | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 好题 | 有 | copypasta/dp.go:4197 |
|
| 2300 | CF1603C | 数论分块优化 DP | copypasta/dp.go:3855 |
|||
| 2300 | CF1623D | 如果状态转移左右两边都包含 f[i],则需要移项化简 | copypasta/dp.go:2429 |
|||
| 2300 | CF1623D | E(x) = ∑i*P(x=i) = ∑P(x>=i) | copypasta/dp.go:2456 |
|||
| 2300 | CF1824B2 | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 有 | copypasta/dp.go:2430 |
||
| 2300 | CF1842E | 数据结构优化 DP | 有 | copypasta/dp.go:3806 |
||
| 2300 | CF1843F2 | 这题做法需要用到上面说到的第二种思路 | 树上的情况 | copypasta/dp.go:526 |
||
| 2300 | CF1927G | 状态设计 | 有 | copypasta/dp.go:213 |
||
| 2300 | CF1955H | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | copypasta/dp.go:2481 |
|||
| 2300 | CF1995D | 所以转换成求每个 ai 的补集的 SOS,维护子集二进制 1 的个数的最大值 | copypasta/dp.go:2902 |
|||
| 2300 | CF2028E | 在本题中,选或不选不是人为决定的,而是由概率决定的 | copypasta/dp.go:2400 |
|||
| 2300 | CF2121H | 在一维 LIS 的基础上,a[i] 可以从多个数中选一个,问 LIS 最长可以多长 | 狸猫换太子 | copypasta/dp.go:900 |
||
| 2400 | CF24D | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 高斯消元 托马斯算法 | copypasta/dp.go:2431 |
||
| 2400 | CF31E | 多维 DP | 有 | copypasta/dp.go:70 |
||
| 2400 | CF31E | 输出具体方案 | 有 | copypasta/dp.go:90 |
||
| 2400 | CF115E | 数据结构优化 DP | 线段树 式子变形 划分型 DP | 有 | copypasta/dp.go:3807 |
|
| 2400 | CF125E | 具体请看下面的代码注释 | 单度限制最小生成树(恰好) | maximum-profit-in-job-scheduling minimum-white-tiles-after-covering-with-carpets |
copypasta/dp.go:4034 |
|
| 2400 | CF283D | 变形:改成环形数组要怎么做 | x 可以被表示为 y 个连续整数的和 | 有 | copypasta/dp.go:51 |
|
| 2400 | CF288D | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 形状设计,两条相交路径(枚举 acd + b),也有简单的做法 形状设计的做法 https://codeforces.com/contest/288/submission/326209476 | 有 | copypasta/dp.go:4199 |
|
| 2400 | CF311B | 思考:三维凸包优化 DP? | 划分型 DP | 有 | copypasta/dp.go:3896 |
|
| 2400 | CF316D3 | 另见 math_comb.go 中的「一些组合问题」 | 交换环 | letter-tile-possibilities minimum-incompatibility |
有 | copypasta/dp.go:315 |
| 2400 | CF441E | 状态设计 | 考虑 x+i 的尾零个数 | 有 | copypasta/dp.go:214 |
|
| 2400 | CF449D | 所以转换成求每个 ai 的补集的 SOS,维护子集二进制 1 的个数的最大值 | 容斥 | 有 | copypasta/dp.go:2903 |
|
| 2400 | CF498B | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 有 | copypasta/dp.go:2432 |
||
| 2400 | CF526E | 变形:改成环形数组要怎么做 | 滑动窗口 | 有 | copypasta/dp.go:52 |
|
| 2400 | CF626F | 插入 DP / 连续段 DP | 有 | copypasta/dp.go:136 |
||
| 2400 | CF626F | 另见 math_comb.go 中的「一些组合问题」 | 转换 | minimum-incompatibility | 有 | copypasta/dp.go:316 |
| 2400 | CF632E | 完全背包 Unbounded Knapsack | copypasta/dp.go:1591 |
|||
| 2400 | CF641D | 概率 式子变形 | 有 | copypasta/dp.go:2390 |
||
| 2400 | CF643C | 部分题目可以用 WQS 二分(或者四边形不等式)优化 | 斜率优化 | minimum-operations-to-make-elements-within-k-subarrays-equal palindrome-partitioning-iii |
有 | copypasta/dp.go:2123 |
| 2400 | CF643C | 思考:三维凸包优化 DP? | 划分型 DP + 期望 DP | 有 | copypasta/dp.go:3897 |
|
| 2400 | CF698C | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 有 | copypasta/dp.go:2433 |
||
| 2400 | CF698C | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 概率 | 有 | copypasta/dp.go:2482 |
|
| 2400 | CF744C | 状态设计 | 有 | copypasta/dp.go:217 |
||
| 2400 | CF744C | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 状态设计 | 有 | copypasta/dp.go:2483 |
|
| 2400 | CF744C | 下面的写法常数是 1/2 | 状态设计 todo | 有 | copypasta/dp.go:2548 |
|
| 2400 | CF756D | 返回一个数组 sumF,其中 sumF[k] 表示长度为 k 的本质不同子序列个数 | 子序列相邻字母一定不同 | 有 | copypasta/dp.go:1271 |
|
| 2400 | CF796E | 多维 DP | 状态设计 | 有 | copypasta/dp.go:71 |
|
| 2400 | CF796E | 状态设计 | 有 | copypasta/dp.go:218 |
||
| 2400 | CF796E | 状态机 DP | 有 | copypasta/dp.go:2328 |
||
| 2400 | CF815C | 所以每个点对会贡献(且只在 LCA 处贡献)一个转移,所以总的转移次数是 O(n^2) | 有 | copypasta/dp.go:1856 |
||
| 2400 | CF822E | 预处理 | 适合刷表法 | 有 | copypasta/dp.go:128 |
|
| 2400 | CF822E | 部分题目可以用 WQS 二分(或者四边形不等式)优化 | 双序列 状态设计 刷表法 | minimum-operations-to-make-elements-within-k-subarrays-equal palindrome-partitioning-iii |
有 | copypasta/dp.go:2124 |
| 2400 | CF825F | 划分型 DP ① 最优分割 | KMP | palindrome-partitioning-ii | 有 | copypasta/dp.go:2091 |
| 2400 | CF865C | 如果状态转移左右两边都包含 f[i],则需要移项化简 | copypasta/dp.go:2434 |
|||
| 2400 | CF939F | 状态设计 | 有 | copypasta/dp.go:219 |
||
| 2400 | CF946F | 多维 DP | 状态设计 todo | 有 | copypasta/dp.go:72 |
|
| 2400 | CF983C | 多维 DP | copypasta/dp.go:73 |
|||
| 2400 | CF1042F | 树的直径(两遍 DFS 求法另见 graph_tree.go 中的 diameter) | 贪心 | diameter-of-binary-tree amount-of-time-for-binary-tree-to-be-infected |
有 | copypasta/dp.go:4225 |
| 2400 | CF1059E | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 取往上冲的最高的点(子树) | 有 | copypasta/dp.go:4200 |
|
| 2400 | CF1083E | 思考:三维凸包优化 DP? | 入门题 | 有 | copypasta/dp.go:3898 |
|
| 2400 | CF1088E | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 有 | copypasta/dp.go:4201 |
||
| 2400 | CF1093F | 状态设计 | 容斥 | 有 | copypasta/dp.go:220 |
|
| 2400 | CF1101F | 决策单调性优化 DP | 看似二分,但实际上只是对状态定义有帮助(最大间距的最小值) | stone-game-v | 有 | copypasta/dp.go:4128 |
| 2400 | CF1107E | 一般定义 f[i][j] 表示子数组 a[i] 到 a[j] 的最优解 | minimum-score-triangulation-of-polygon remove-boxes |
有 | copypasta/dp.go:2177 |
|
| 2400 | CF1107E | 另见 LPS | 有 | copypasta/dp.go:2198 |
||
| 2400 | CF1304F2 | 数据结构优化 DP | 单调队列 | 有 | copypasta/dp.go:3808 |
|
| 2400 | CF1348E | 状态设计 | 做到 O(nk) todo 需要复习 | 有 | copypasta/dp.go:221 |
|
| 2400 | CF1523D | 所以转换成求每个 ai 的补集的 SOS,维护子集二进制 1 的个数的最大值 | 有 | copypasta/dp.go:2904 |
||
| 2400 | CF1575M | 思考:三维凸包优化 DP? | 固定变量 | 有 | copypasta/dp.go:3899 |
|
| 2400 | CF1598F | 下面的写法常数是 1/2 | 合法括号字符串 | 有 | copypasta/dp.go:2550 |
|
| 2400 | CF1609E | 数据结构优化 DP | 线段树 分治 | 有 | copypasta/dp.go:3809 |
|
| 2400 | CF1620G | 所以转换成求每个 ai 的补集的 SOS,维护子集二进制 1 的个数的最大值 | 容斥 | 有 | copypasta/dp.go:2905 |
|
| 2400 | CF1626E | 换根 DP / 二次扫描法 | 有 | copypasta/dp.go:4605 |
||
| 2400 | CF1670F | 贪心:求 <= N 的最大数 | count-beautiful-numbers | 有 | copypasta/dp.go:3157 |
|
| 2400 | CF1679E | 所以转换成求每个 ai 的补集的 SOS,维护子集二进制 1 的个数的最大值 | 有 | copypasta/dp.go:2906 |
||
| 2400 | CF1715E | 思考:三维凸包优化 DP? | Dijkstra | 有 | copypasta/dp.go:3900 |
|
| 2400 | CF1739E | 变形:改成环形数组要怎么做 | maximize-the-distance-between-points-on-a-square | 有 | copypasta/dp.go:54 |
|
| 2400 | CF1794E | 换根 DP / 二次扫描法 | copypasta/dp.go:4606 |
|||
| 2400 | CF1826E | 在一维 LIS 的基础上,a[i] 可以从多个数中选一个,问 LIS 最长可以多长 | bitset 优化 | 有 | copypasta/dp.go:910 |
|
| 2400 | CF1852C | 同上,把这个序列视作 1 2 2 4 2 2,总的修改次数仍然为 11 | make-array-non-decreasing-or-non-increasing | 有 | copypasta/dp.go:662 |
|
| 2400 | CF1866M | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 期望的线性性 | 有 | copypasta/dp.go:2435 |
|
| 2400 | CF1886E | 下面的写法常数是 1/2 | 状态设计 打印具体方案 | 有 | copypasta/dp.go:2549 |
|
| 2400 | CF1943D1 | 逆序对为 k 时的排列个数 | 结论 | count-routes-to-climb-a-rectangular-grid | 有 | copypasta/dp.go:3832 |
| 2400 | CF2109E | 另见 math_comb.go 中的「一些组合问题」 | 翻转前缀的不同操作顺序的个数 | 有 | copypasta/dp.go:317 |
|
| 2400 | CF2122D | 图 DP | t 时刻只能去 g[v][t%len(g[v])] | 有 | copypasta/dp.go:171 |
|
| 2500 | CF23E | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | copypasta/dp.go:4202 |
|||
| 2500 | CF55D | 贪心:求 <= N 的最大数 | 被每个非零数位都整除的数字个数 | count-beautiful-numbers find-sum-of-array-product-of-magical-sequences |
有 | copypasta/dp.go:3159 |
| 2500 | CF95D | 贪心:求 <= N 的最大数 | 考虑 memo 的复用 | count-beautiful-numbers find-sum-of-array-product-of-magical-sequences |
有 | copypasta/dp.go:3160 |
| 2500 | CF147B | 倍增 | path-existence-queries-in-a-graph-ii | 有 | copypasta/dp.go:3661 |
|
| 2500 | CF360C | 多维 DP | 有 | copypasta/dp.go:74 |
||
| 2500 | CF437E | 一般定义 f[i][j] 表示子数组 a[i] 到 a[j] 的最优解 | minimum-cost-to-cut-a-stick minimum-score-triangulation-of-polygon |
copypasta/dp.go:2174 |
||
| 2500 | CF437E | 另见 LPS | copypasta/dp.go:2199 |
|||
| 2500 | CF543C | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 状态转移 | 有 | copypasta/dp.go:2484 |
|
| 2500 | CF660F | 思考:三维凸包优化 DP? | 有 | copypasta/dp.go:3901 |
||
| 2500 | CF678F | 思考:三维凸包优化 DP? | 线段树分治 todo | copypasta/dp.go:3902 |
||
| 2500 | CF704B | 插入 DP / 连续段 DP | copypasta/dp.go:137 |
|||
| 2500 | CF735E | 下面的定义省去了(……时的最小支配集的元素个数) w 为 i 的儿子 | 支配距离 <= k 的方案数 | binary-tree-cameras | 有 | copypasta/dp.go:4519 |
| 2500 | CF771D | 多维 DP | 逆序对 | 有 | copypasta/dp.go:75 |
|
| 2500 | CF835F | 树的直径(两遍 DFS 求法另见 graph_tree.go 中的 diameter) | 基环树 形状设计 | diameter-of-binary-tree amount-of-time-for-binary-tree-to-be-infected |
有 | copypasta/dp.go:4226 |
| 2500 | CF840C | 状态设计 | 多重集排列,相邻元素不同 | 有 | copypasta/dp.go:222 |
|
| 2500 | CF845F | 轮廓线 DP | 状态设计 一个格子一个格子地算 | 有 | copypasta/dp.go:2505 |
|
| 2500 | CF868F | 决策单调性优化 DP | 分治+莫队均摊 todo | stone-game-v | 有 | copypasta/dp.go:4129 |
| 2500 | CF946G | 在一维 LIS 的基础上,a[i] 可以从多个数中选一个,问 LIS 最长可以多长 | 有 | copypasta/dp.go:911 |
||
| 2500 | CF946G | 状态机 DP | LIS | 有 | copypasta/dp.go:2329 |
|
| 2500 | CF958C3 | 其他 | 同余 找最优决策点 | 有 | copypasta/dp.go:3858 |
|
| 2500 | CF1065F | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 可以跳到叶子,也可以往上跳至多 k 步,问:至多可以访问多少个叶子? | 有 | copypasta/dp.go:4203 |
|
| 2500 | CF1146F | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 把叶子分成若干集合,每个集合的斯坦纳树互不相交 状态设计 todo 复习 | 有 | copypasta/dp.go:4204 |
|
| 2500 | CF1209E2 | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 循环移位 | 有 | copypasta/dp.go:2485 |
|
| 2500 | CF1280D | 所以每个点对会贡献(且只在 LCA 处贡献)一个转移,所以总的转移次数是 O(n^2) | copypasta/dp.go:1857 |
|||
| 2500 | CF1550E | 下面的写法常数是 1/2 | 状态设计 | 有 | copypasta/dp.go:2551 |
|
| 2500 | CF1556F | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 状压 DP | copypasta/dp.go:2436 |
||
| 2500 | CF1556F | 把相同的大质数归类,避免重复选择(分组背包) | copypasta/dp.go:2755 |
|||
| 2500 | CF1556F | 将 n 个集合分成尽量多组,使得对于每组,组内所有集合的并集等于全集 | 期望 DP | copypasta/dp.go:2759 |
||
| 2500 | CF1562E | 这样能更容易地看出转移的顺序,然后变成一个 DAG 上求最长路的问题 | 有 | copypasta/dp.go:844 |
||
| 2500 | CF1691F | 换根 DP / 二次扫描法 | 计数 | copypasta/dp.go:4607 |
||
| 2500 | CF1701E | follow up: 要求某个子串 sub 一定在 LCS 中 | 状态机 DP / 前后缀分解 | 有 | copypasta/dp.go:747 |
|
| 2500 | CF1701E | 状态机 DP | LCS 变形题 | 有 | copypasta/dp.go:2330 |
|
| 2500 | CF1779F | 输出具体方案 | 树上背包 | 有 | copypasta/dp.go:91 |
|
| 2500 | CF1779F | 所以每个点对会贡献(且只在 LCA 处贡献)一个转移,所以总的转移次数是 O(n^2) | 输出具体方案 | 有 | copypasta/dp.go:1858 |
|
| 2500 | CF1854C | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 期望的线性性(独立计算) | 有 | copypasta/dp.go:2437 |
|
| 2500 | CF1866K | 思考:三维凸包优化 DP? | 凸包次大值:把从单调栈中淘汰的数据再建一个(更内部的)凸包 | 有 | copypasta/dp.go:3903 |
|
| 2500 | CF1866K | 换根 DP · 其二(维护最大次大) | 凸包 | time-taken-to-mark-all-nodes | 有 | copypasta/dp.go:4716 |
| 2500 | CF1903D2 | 所以转换成求每个 ai 的补集的 SOS,维护子集二进制 1 的个数的最大值 | 状态设计 | 有 | copypasta/dp.go:2907 |
|
| 2600 | CF6D | 多维 DP | 有 | copypasta/dp.go:76 |
||
| 2600 | CF10E | 【脑洞】求极限:lim_{maxW->∞} f[maxW]/maxW | 有 | copypasta/dp.go:1596 |
||
| 2600 | CF67C | 最长公共子序列 (LCS) | edit-distance one-edit-distance |
copypasta/dp.go:735 |
||
| 2600 | CF93E | 多维 DP | 记忆化搜索 时间换空间 | 有 | copypasta/dp.go:77 |
|
| 2600 | CF115D | 逆序对为 k 时的排列个数 | count-routes-to-climb-a-rectangular-grid | copypasta/dp.go:3833 |
||
| 2600 | CF150D | 另见 LPS | 回文消除 每个长度有不同的权值 | palindrome-removal | copypasta/dp.go:2189 |
|
| 2600 | CF248E | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 移动架子上的蜂蜜罐 | 有 | copypasta/dp.go:2438 |
|
| 2600 | CF258D | 在本题中,选或不选不是人为决定的,而是由概率决定的 | 有 | copypasta/dp.go:2401 |
||
| 2600 | CF261D | 更简单的做法是用线段树 | copypasta/dp.go:894 |
|||
| 2600 | CF321E | 部分题目可以用 WQS 二分(或者四边形不等式)优化 | minimum-operations-to-make-elements-within-k-subarrays-equal palindrome-partitioning-iii |
有 | copypasta/dp.go:2125 |
|
| 2600 | CF321E | 具体请看下面的代码注释 | maximum-profit-in-job-scheduling minimum-white-tiles-after-covering-with-carpets |
有 | copypasta/dp.go:4035 |
|
| 2600 | CF321E | 满足该性质的 DAG 叫做 Monge 图 | super-egg-drop | 有 | copypasta/dp.go:4138 |
|
| 2600 | CF346D | 图 DP | 有 | copypasta/dp.go:172 |
||
| 2600 | CF382E | 另见 math_comb.go 中的「一些组合问题」 | copypasta/dp.go:318 |
|||
| 2600 | CF494C | 如果状态转移左右两边都包含 f[i],则需要移项化简 | copypasta/dp.go:2439 |
|||
| 2600 | CF599E | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 树上子集状压 | 有 | copypasta/dp.go:2486 |
|
| 2600 | CF599E | 将 n 个集合分成尽量多组,使得对于每组,组内所有集合的并集等于全集 | 树上子集状压 DP | 有 | copypasta/dp.go:2760 |
|
| 2600 | CF627D | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 看似换根,但其实不是 | 有 | copypasta/dp.go:4205 |
|
| 2600 | CF631E | 思考:三维凸包优化 DP? | 往左还是往右可以变形成同一个式子 | 有 | copypasta/dp.go:3904 |
|
| 2600 | CF633F | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 形状设计 | 有 | copypasta/dp.go:4206 |
|
| 2600 | CF633F | 最大路径和 最大路径点权和 | 两条不相交路径的最大点权和 | difference-between-maximum-and-minimum-price-sum | 有 | copypasta/dp.go:4391 |
| 2600 | CF633F | 换根 DP · 其二(维护最大次大) | 计算最大次大第三大(也可以直接树形 DP,无需换根) | time-taken-to-mark-all-nodes | 有 | copypasta/dp.go:4717 |
| 2600 | CF650D | 在一维 LIS 的基础上,a[i] 可以从多个数中选一个,问 LIS 最长可以多长 | 有 | copypasta/dp.go:908 |
||
| 2600 | CF662C | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 状态设计 也可以 FWT | 有 | copypasta/dp.go:2487 |
|
| 2600 | CF797F | 部分题目可以用 WQS 二分(或者四边形不等式)优化 | palindrome-partitioning-iii | 有 | copypasta/dp.go:2126 |
|
| 2600 | CF1172C2 | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 有 | copypasta/dp.go:2440 |
||
| 2600 | CF1208F | 所以转换成求每个 ai 的补集的 SOS,维护子集二进制 1 的个数的最大值 | 也有枚举子集+剪枝的做法 | 有 | copypasta/dp.go:2908 |
|
| 2600 | CF1237F | 另见 math_comb.go 中的「一些组合问题」 | 有 | copypasta/dp.go:319 |
||
| 2600 | CF1380G | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 放 k 个宝箱怪 贡献法 排序不等式 式子变形 | 有 | copypasta/dp.go:2489 |
|
| 2600 | CF1430G | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 有 | copypasta/dp.go:2490 |
||
| 2600 | CF1437F | 状态设计 | 钓鱼佬 情绪化展示顺序的方案数 | 有 | copypasta/dp.go:223 |
|
| 2600 | CF1523E | E(x) = ∑i*P(x=i) = ∑P(x>=i) | 有 | copypasta/dp.go:2457 |
||
| 2600 | CF1580B | 另见 math_comb.go 中的「一些组合问题」 | 有 | copypasta/dp.go:320 |
||
| 2600 | CF1584F | follow up: 要求某个子串 sub 一定在 LCS 中 | 多串 + 每种字母至多出现两次 | 有 | copypasta/dp.go:748 |
|
| 2600 | CF1793E | 状态设计 | 读书 满足尽量多的人 | 有 | copypasta/dp.go:224 |
|
| 2600 | CF1823F | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 树上随机游走 | 有 | copypasta/dp.go:2441 |
|
| 2600 | CF1863F | 另见 LPS | 有 | copypasta/dp.go:2200 |
||
| 2600 | CF1863F | 其他 | 有 | copypasta/dp.go:3859 |
||
| 2600 | CF2042F | 如矩阵乘积,矩阵和等等。线段树的区间操作可以应对区间修改问题。 | 有 | copypasta/dp.go:3873 |
||
| 2700 | CF98E | 在本题中,选或不选不是人为决定的,而是由概率决定的 | 纳什均衡 | 有 | copypasta/dp.go:2402 |
|
| 2700 | CF183D | 如果状态转移左右两边都包含 f[i],则需要移项化简 | copypasta/dp.go:2442 |
|||
| 2700 | CF183D | 逆序对为 k 时的排列个数 | copypasta/dp.go:3834 |
|||
| 2700 | CF249D | 修改 2 个数呢?修改 k 个数呢? | copypasta/dp.go:914 |
|||
| 2700 | CF367E | 多维 DP | 状态设计 | 有 | copypasta/dp.go:78 |
|
| 2700 | CF383E | 问题变成 (^ai)&aj&ak + ai 的最大值 | 正难则反 | 有 | copypasta/dp.go:2912 |
|
| 2700 | CF494D | 记录子树大小 size[v] 和子树每个节点的深度之和 sum(dep[sub]) | 式子变形 | copypasta/dp.go:4633 |
||
| 2700 | CF772D | 问题变成 (^ai)&aj&ak + ai 的最大值 | copypasta/dp.go:2913 |
|||
| 2700 | CF932F | 思考:三维凸包优化 DP? | 平衡树+启发式合并 | 有 | copypasta/dp.go:3905 |
|
| 2700 | CF938F | 状态设计 | 扩散至超集的写法 | 有 | copypasta/dp.go:225 |
|
| 2700 | CF995F | 另见 math_comb.go 中的「一些组合问题」 | 也可以用拉格朗日插值 | copypasta/dp.go:321 |
||
| 2700 | CF1303G | 思考:三维凸包优化 DP? | 李超线段树 | copypasta/dp.go:3906 |
||
| 2700 | CF1338D | 树的直径(两遍 DFS 求法另见 graph_tree.go 中的 diameter) | 橡皮筋嵌套 最长长度 形状设计 todo 复习 | diameter-of-binary-tree amount-of-time-for-binary-tree-to-be-infected |
有 | copypasta/dp.go:4227 |
| 2700 | CF1366F | 思考:三维凸包优化 DP? | 图 DP | 有 | copypasta/dp.go:3907 |
|
| 2700 | CF1366G | follow up: 要求某个子串 sub 一定在 LCS 中 | 结合括号匹配,挖掘性质 | copypasta/dp.go:750 |
||
| 2700 | CF1487G | 关于「超大背包问题」见 search.go | copypasta/dp.go:1408 |
|||
| 2700 | CF1542E2 | 逆序对为 k 时的排列个数 | 有 | copypasta/dp.go:3835 |
||
| 2700 | CF1789F | follow up: 要求某个子串 sub 一定在 LCS 中 | 分类讨论 多串 | 有 | copypasta/dp.go:751 |
|
| 2700 | CF1799F | 贪心+DP | minimum-time-to-make-array-sum-at-most-x | 有 | copypasta/dp.go:284 |
|
| 2700 | CF1997F | 完全背包 Unbounded Knapsack | 有 | copypasta/dp.go:1592 |
||
| 2700 | CF2026F | 关于「超大背包问题」见 search.go | 有 | copypasta/dp.go:1405 |
||
| 2700 | CF2209F | 换根 DP · 其二(维护最大次大) | time-taken-to-mark-all-nodes | copypasta/dp.go:4718 |
||
| 2800 | CF79D | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | BFS | 有 | copypasta/dp.go:2491 |
|
| 2800 | CF850F | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 鞅与停时定理 | copypasta/dp.go:2443 |
||
| 2800 | CF908G | 贪心:求 <= N 的最大数 | 排序后的数字之和 | find-sum-of-array-product-of-magical-sequences | 有 | copypasta/dp.go:3162 |
| 2800 | CF1442D | 分组背包·每组至多选一个(恰好选一个见后面) | todo 进一步优化 | 有 | copypasta/dp.go:1779 |
|
| 2800 | CF1842G | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 题解 https://codeforces.com/blog/entry/117640 | 有 | copypasta/dp.go:2444 |
|
| 2800 | CF2034F2 | 另见 math_comb.go 中的「一些组合问题」 | 有 | copypasta/dp.go:322 |
||
| 2800 | CF2034F2 | 如果状态转移左右两边都包含 f[i],则需要移项化简 | todo 复习 | 有 | copypasta/dp.go:2445 |
|
| 2800 | CF2107F2 | 思考:三维凸包优化 DP? | copypasta/dp.go:3908 |
|||
| 2900 | CF497E | 本质不同非空子序列个数 | distinct-subsequences-ii number-of-unique-good-subsequences |
copypasta/dp.go:1252 |
||
| 2900 | CF497E | 贪心:求 <= N 的最大数 | find-sum-of-array-product-of-magical-sequences | copypasta/dp.go:3164 |
||
| 3000 | CF739E | 具体请看下面的代码注释 | 也可以费用流 | maximum-profit-in-job-scheduling minimum-white-tiles-after-covering-with-carpets |
copypasta/dp.go:4036 |
|
| 3000 | CF1152F2 | 状态设计 | 值域 插入法 | 有 | copypasta/dp.go:226 |
|
| 3000 | CF1152F2 | 状压 DP 本质上就是在集合与集合之间转移,所以一定要能熟练地把集合语言翻译成位运算 | 状态设计 值域 插入法 | 有 | copypasta/dp.go:2492 |
|
| 3000 | CF1175G | 思考:三维凸包优化 DP? | 李超线段树 | copypasta/dp.go:3909 |
||
| 3000 | CF1320E | 换根 DP / 二次扫描法 | 虚树 | 有 | copypasta/dp.go:4608 |
|
| 3000 | CF1342F | 状态设计 | 有 | copypasta/dp.go:227 |
||
| 3000 | CF1342F | 输出方案 | shortest-common-supersequence maximum-points-in-an-archery-competition |
有 | copypasta/dp.go:259 |
|
| 3000 | CF1342F | 将 n 个集合分成尽量多组,使得对于每组,组内所有集合的并集等于全集 | 状态设计 | 有 | copypasta/dp.go:2761 |
|
| 3100 | CF708E | 对于 f[i] = sum_j f[j] * |i-j|,可以用前缀和优化 | 有 | copypasta/dp.go:3838 |
||
| 3100 | CF720F | 具体请看下面的代码注释 | maximum-profit-in-job-scheduling minimum-white-tiles-after-covering-with-carpets |
copypasta/dp.go:4037 |
||
| 3200 | CF1025G | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 鞅与停时定理 | 有 | copypasta/dp.go:2446 |
|
| 3200 | CF1349D | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 鞅与停时定理 | copypasta/dp.go:2447 |
||
| 3300 | CF582D | 贪心:求 <= N 的最大数 | 模数为 p^a | copypasta/dp.go:3170 |
||
| 3300 | CF582D | 二维数位 DP | 模数为 p^a | copypasta/dp.go:3548 |
||
| 3300 | CF1787H | 同上,把这个序列视作 1 2 2 4 2 2,总的修改次数仍然为 11 | make-array-non-decreasing-or-non-increasing | copypasta/dp.go:663 |
||
| 3500 | CF1479E | 如果状态转移左右两边都包含 f[i],则需要移项化简 | 鞅与停时定理 | copypasta/dp.go:2448 |
||
| CF2B | NOTE:(区间 DP)正向计算不易时,试着反向计算 | new-21-game | 有 | copypasta/dp.go:297 |
||
| CF9D | 预处理 | 由 n 个值互不相同的点组成的高度不小于 h 的 BST 有多少个 | 有 | copypasta/dp.go:117 |
||
| CF10D | 最长公共上升子序列 (LCIS) | 有 | copypasta/dp.go:1124 |
|||
| CF13C | 2.3 节 | 有 | copypasta/dp.go:384 |
|||
| CF38E | 预处理 | 有 | copypasta/dp.go:118 |
|||
| CF95E | 多重背包 Bounded Knapsack | 有 | copypasta/dp.go:1635 |
|||
| CF106C | 多重背包 Bounded Knapsack | 有 | copypasta/dp.go:1630 |
|||
| CF137D | 划分型 DP ① 最优分割 | palindrome-partitioning-ii | 有 | copypasta/dp.go:2088 |
||
| CF156C | 另见 math_comb.go 中的「多重集组合数」容斥做法 | 也可以用容斥 | 有 | copypasta/dp.go:1719 |
||
| CF176B | 预处理 | 有 | copypasta/dp.go:113 |
|||
| CF238C | 对于每个点,统计往上走能到哪些同色点(中途不能经过同色点) | 做到 O(n) ~2400 | 有 | copypasta/dp.go:4198 |
||
| CF245H | 返回一个二维数组 f, f[i][j] 表示 s[i:j+1] 内的回文串的个数 | 有 | copypasta/dp.go:2238 |
|||
| CF283B | NOTE: 若状态转移不构成 DAG,请尝试建图+BFS,见: | 活用 012 染色 | 有 | copypasta/dp.go:289 |
||
| CF335B | 最长回文子序列 (LPS) | 输出具体方案 | count-different-palindromic-subsequences minimum-insertion-steps-to-make-a-string-palindrome |
有 | copypasta/dp.go:2214 |
|
| CF358D | 预处理 | 好题:涉及到相邻状态先后关系的 DP(喂兔子) | 有 | copypasta/dp.go:119 |
||
| CF358D | 如何消除后效性(通过巧妙地设计状态/发现性质) | burst-balloons remove-boxes |
有 | copypasta/dp.go:249 |
||
| CF446A | 预处理 | 有 | copypasta/dp.go:120 |
|||
| CF478D | 0-1 背包 EXTRA: 从序列 a 中选若干个数,使其总和为 sum 的方案数 | profitable-schemes | 有 | copypasta/dp.go:1504 |
||
| CF505C | 预处理 | copypasta/dp.go:115 |
||||
| CF510D | 由于数据范围的原因,采用 map 记忆化 dpMap | minimum-number-of-operations-to-make-x-and-y-equal shopping-offers |
有 | copypasta/dp.go:428 |
||
| CF520E | 思维转换 | super-egg-drop number-of-music-playlists |
有 | copypasta/dp.go:276 |
||
| CF543A | 注意:「恰好使用 m 个物品」这个条件要当成一种费用来看待 | 有 | copypasta/dp.go:1627 |
|||
| CF603A | 预处理 | 有 | copypasta/dp.go:121 |
|||
| CF623B | 思维转换 | 有 | copypasta/dp.go:279 |
|||
| CF626F | 枚举子集的子集 | maximum-students-taking-exam minimum-incompatibility |
有 | copypasta/dp.go:2750 |
||
| CF628D | 数位 DP | 有 | copypasta/dp.go:3111 |
|||
| CF682D | NOTE:(区间 DP)正向计算不易时,试着反向计算 | new-21-game | 有 | copypasta/dp.go:298 |
||
| CF713C | 2.3 节 | 有 | copypasta/dp.go:385 |
|||
| CF718C | 如矩阵乘积,矩阵和等等。线段树的区间操作可以应对区间修改问题。 | 有 | copypasta/dp.go:3870 |
|||
| CF730J | 0-1 背包 EXTRA: 恰好装满 | 有 | copypasta/dp.go:1439 |
|||
| CF739E | O(n√nw) 的 shuffle 做法(这里 w=max(wi)) | copypasta/dp.go:1363 |
||||
| CF750E | 如矩阵乘积,矩阵和等等。线段树的区间操作可以应对区间修改问题。 | 有 | copypasta/dp.go:3871 |
|||
| CF762E | CDQ 分治优化 DP | 有 | copypasta/dp.go:4151 |
|||
| CF811C | 预处理 | 处理区间元素不能在区间外面的技巧 https://codeforces.com/contest/811/submission/174568255 | 有 | copypasta/dp.go:122 |
||
| CF837D | f[i][j] 表示前 i 个数,凑成 j 的所有方案中,最小下标的最大值 | partition-equal-subset-sum ones-and-zeroes |
有 | copypasta/dp.go:1420 |
||
| CF838E | 思维转换 | super-egg-drop number-of-music-playlists |
copypasta/dp.go:273 |
|||
| CF848C | CDQ 分治优化 DP | copypasta/dp.go:4150 |
||||
| CF855E | 数位 DP | 有 | copypasta/dp.go:3112 |
|||
| CF864E | 贪心优化 DP | 有 | copypasta/dp.go:335 |
|||
| CF883I | 思维转换 | super-egg-drop number-of-music-playlists |
有 | copypasta/dp.go:277 |
||
| CF883I | 双指针优化 DP | 有 | copypasta/dp.go:338 |
|||
| CF917B | 转移:让「自己与对手的分差」最大 | 有 | copypasta/dp.go:2343 |
|||
| CF922E | 多重背包 - 未优化 | (由于要取 min 所以不能用二进制优化) | 有 | copypasta/dp.go:1644 |
||
| CF959C | 求最小顶点覆盖,以及所有最小顶点覆盖中,两端点都被覆盖的边的最大个数 | 有 | copypasta/dp.go:4491 |
|||
| CF999F | 多重背包 Bounded Knapsack | copypasta/dp.go:1634 |
||||
| CF1032F | 树上完美匹配子集个数 | copypasta/dp.go:4577 |
||||
| CF1036C | 数位 DP | 有 | copypasta/dp.go:3108 |
|||
| CF1045G | CDQ 分治优化 DP | https://codeforces.com/problemset/problem/762/E | 有 | copypasta/dp.go:4151 |
||
| CF1102F | 旅行商问题 travelling salesman problem TSP | 有 | copypasta/dp.go:2641 |
|||
| CF1120C | 预处理 | 有 | copypasta/dp.go:123 |
|||
| CF1149B | 如矩阵乘积,矩阵和等等。线段树的区间操作可以应对区间修改问题。 | 有 | copypasta/dp.go:3872 |
|||
| CF1163D | 预处理 | 与 KMP 结合 | 有 | copypasta/dp.go:124 |
||
| CF1168C | 预处理 | 有 | copypasta/dp.go:125 |
|||
| CF1223D | 思维转换 | super-egg-drop number-of-music-playlists |
有 | copypasta/dp.go:274 |
||
| CF1225E | 思维转换 | number-of-music-playlists | 有 | copypasta/dp.go:278 |
||
| CF1272F | NOTE: 若状态转移不构成 DAG,请尝试建图+BFS,见: | 有 | copypasta/dp.go:290 |
|||
| CF1304D | LIS 相关构造题 | 有 | copypasta/dp.go:1114 |
|||
| CF1324E | 预处理 | 有 | copypasta/dp.go:114 |
|||
| CF1354E | 允许物品重量为 0 | minimize-the-difference-between-target-and-chosen-elements | 有 | copypasta/dp.go:1809 |
||
| CF1359D | 也可以前后缀分解 | maximum-sum-circular-subarray | 有 | copypasta/dp.go:505 |
||
| CF1380F | 如矩阵乘积,矩阵和等等。线段树的区间操作可以应对区间修改问题。 | 有 | copypasta/dp.go:3869 |
|||
| CF1420C2 | 有两种思路: | minimum-number-of-increments-on-subarrays-to-form-a-target-array best-time-to-buy-and-sell-stock-ii |
有 | copypasta/dp.go:618 |
||
| CF1442D | 分治 DP | 有 | copypasta/dp.go:2337 |
|||
| CF1479B2 | 交替 DP | 有 | copypasta/dp.go:303 |
|||
| CF1542D | 预处理 | 有 | copypasta/dp.go:126 |
|||
| CF1542D | 思维转换 | super-egg-drop number-of-music-playlists |
有 | copypasta/dp.go:275 |
||
| CF1554B | 对于位运算的题,直接把 a[i] 当作 T | 有 | copypasta/dp.go:2970 |
|||
| CF1582F1 | 常见于递增子序列相关的题目 | maximize-consecutive-elements-in-an-array-after-modification | 有 | copypasta/dp.go:264 |
||
| CF1591F | 状态设计 | copypasta/dp.go:216 |
||||
| CF1624E | 思维转换 | 有 | copypasta/dp.go:280 |
|||
| CF1637D | 允许物品重量为 0 | minimize-the-difference-between-target-and-chosen-elements | 有 | copypasta/dp.go:1810 |
||
| CF1670F | 另一种情况 | 有 | copypasta/dp.go:3505 |
|||
| CF1673C | 0-1 背包 EXTRA: 从序列 a 中选若干个数,使其总和为 sum 的方案数 | ways-to-express-an-integer-as-sum-of-powers profitable-schemes |
有 | copypasta/dp.go:1502 |
||
| CF1692H | 除了返回最大子段和外,还返回最大子段和对应的子段 [l,r] | copypasta/dp.go:544 |
||||
| CF1692H | 维护前缀和的最小值的写法 | copypasta/dp.go:566 |
||||
| CF1695C | 介值定理 | 有 | copypasta/dp.go:145 |
|||
| CF1710C | 贪心:求 <= N 的最大数 | maximum-number-of-balls-in-a-box count-symmetric-integers |
有 | copypasta/dp.go:3144 |
||
| CF1738C | 转移:让「自己与对手的分差」最大 | stone-game-ii stone-game-iii |
有 | copypasta/dp.go:2352 |
||
| CF1746D | 由于数据范围的原因,采用 map 记忆化 dpMap | minimum-number-of-operations-to-make-x-and-y-equal shopping-offers |
有 | copypasta/dp.go:429 |
||
| CF1796D | 《算法导论》练习 4.1-5 | 有 | copypasta/dp.go:493 |
|||
| CF1842C | 数据结构优化 DP | 有 | copypasta/dp.go:3787 |
|||
| CF1843F2 | 有三种思路 | maximum-subarray | copypasta/dp.go:478 |
|||
| CF1845E | 预处理 | copypasta/dp.go:127 |
||||
| CF1881F | 换根 DP / 二次扫描法 | minimum-height-trees | 有 | copypasta/dp.go:4590 |
||
| CF1926F | 枚举子集的子集 | find-minimum-time-to-finish-all-jobs maximum-students-taking-exam |
有 | copypasta/dp.go:2748 |
||
| CF1932F | 常规题目 | 有 | copypasta/dp.go:191 |
|||
| CF1950G | 输入的 g 是邻接矩阵,第二维度压缩成一个 int | 有 | copypasta/dp.go:2678 |
|||
| CF2043C | 介值定理 | 有 | copypasta/dp.go:146 |
|||
| CF2104F | 贪心:求 <= N 的最大数 | find-sum-of-array-product-of-magical-sequences | copypasta/dp.go:3163 |
|||
| CF2121E | 贪心:求 <= N 的最大数 | 只用到了思想,无需记忆化 | maximum-number-of-balls-in-a-box count-symmetric-integers |
有 | copypasta/dp.go:3143 |
|
| CFEDU-I | 关于「超大背包问题」见 search.go | Codeforces EDU | copypasta/dp.go:1409 |
|||
| CF104337B | 贪心:求 <= N 的最大数 | 【妙】数位众数,把 freq 排序作为 key | copypasta/dp.go:3165 |
|||
| CF104373J | 变形:两个异色点的最远距离 | https://www.luogu.com.cn/problem/P9665 | copypasta/dp.go:4275 |
图论
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1200 | CF489B | 超级源点连左部,右部连超级汇点,所有边的容量均为 1,最大流即为最大匹配 | 有 | copypasta/graph_flow.go:81 |
||
| 1300 | CF862B | 注:二分图也叫偶图 | 考察定义 树至多加多少条边仍然是二分图 | is-graph-bipartite possible-bipartition |
有 | copypasta/graph.go:3118 |
| 1300 | CF1675D | 简单 DFS | 树分成尽量少的链 | 有 | copypasta/graph_tree.go:32 |
|
| 1300 | CF1948C | 网格图 DFS | pacific-atlantic-water-flow making-a-large-island |
有 | copypasta/graph_grid.go:23 |
|
| 1400 | CF1670C | 更简单的做法是倍增 | 无向图 | longest-cycle-in-a-graph | 有 | copypasta/graph.go:3965 |
| 1400 | CF1714E | 反复迭代 a <- a + a%10 | 有 | copypasta/graph.go:4677 |
||
| 1400 | CF2034C | 网格图 DFS | making-a-large-island | 有 | copypasta/graph_grid.go:24 |
|
| 1500 | CF35C | 网格图 BFS | copypasta/graph_grid.go:31 |
|||
| 1500 | CF329B | 网格图 BFS | copypasta/graph_grid.go:32 |
|||
| 1500 | CF580C | 简单 DFS | copypasta/graph_tree.go:33 |
|||
| 1500 | CF744A | DFS | 有 | copypasta/graph.go:164 |
||
| 1500 | CF2027C | 建图 | 有 | copypasta/graph.go:20 |
||
| 1500 | CF2115A | BFS | 也可以 DP,或者更快的做法 | 有 | copypasta/graph.go:419 |
|
| 1600 | CF34D | 简单 DFS | 有 | copypasta/graph_tree.go:34 |
||
| 1600 | CF131D | 更简单的做法是倍增 | 【无向图 建反图】 | longest-cycle-in-a-graph | 有 | copypasta/graph.go:3966 |
| 1600 | CF601A | BFS | 脑筋急转弯 | 有 | copypasta/graph.go:421 |
|
| 1600 | CF616C | 网格图 DFS | pacific-atlantic-water-flow making-a-large-island |
copypasta/graph_grid.go:20 |
||
| 1600 | CF659E | DFS | 有 | copypasta/graph.go:165 |
||
| 1600 | CF689B | BFS | 最短路模板题 | 有 | copypasta/graph.go:420 |
|
| 1600 | CF723D | 网格图 DFS | making-a-large-island | copypasta/graph_grid.go:25 |
||
| 1600 | CF1511D | 模板题(输出边) | 构造 | valid-arrangement-of-pairs cracking-the-safe |
copypasta/graph.go:739 |
|
| 1600 | CF1530D | 更简单的做法是倍增 | 把基环树拆分成若干条链,然后把这些链合并成一个大环 | longest-cycle-in-a-graph | 有 | copypasta/graph.go:3967 |
| 1600 | CF1833E | 更简单的做法是倍增 | longest-cycle-in-a-graph | 有 | copypasta/graph.go:3963 |
|
| 1700 | CF229B | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 二分 | 有 | copypasta/graph.go:1521 |
|
| 1700 | CF295B | EXTRA: 打印负环 | 动态加点 | 有 | copypasta/graph.go:1949 |
|
| 1700 | CF598D | 网格图 DFS | 有 | copypasta/graph_grid.go:26 |
||
| 1700 | CF765D | 建图 | 有 | copypasta/graph.go:21 |
||
| 1700 | CF1027D | 更简单的做法是倍增 | 有 | copypasta/graph.go:3969 |
||
| 1700 | CF1093D | 注:二分图也叫偶图 | is-graph-bipartite possible-bipartition |
有 | copypasta/graph.go:3119 |
|
| 1700 | CF1176E | DFS | 有 | copypasta/graph.go:167 |
||
| 1700 | CF1204C | EXTRA: 打印负环 | 有 | copypasta/graph.go:1950 |
||
| 1700 | CF1365D | 网格图 DFS | 有 | copypasta/graph_grid.go:27 |
||
| 1700 | CF1406C | 树的重心是点分治中的一个划分步骤 | 求两个重心 | 有 | copypasta/graph_tree.go:721 |
|
| 1700 | CF1873H | 更简单的做法是倍增 | 复杂分类讨论 | longest-cycle-in-a-graph | copypasta/graph.go:3968 |
|
| 1700 | CF1881F | 可以用来判断有向图是否有环、求 DAG 上的 DP 等 | largest-color-value-in-a-directed-graph minimum-height-trees |
有 | copypasta/graph.go:3555 |
|
| 1700 | CF2018C | BFS | 有 | copypasta/graph_tree.go:46 |
||
| 1700 | CF2023B | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 建模 | 有 | copypasta/graph.go:1522 |
|
| 1700 | CF2041D | 网格图 BFS | copypasta/graph_grid.go:33 |
|||
| 1700 | CF2110D | 可以用来判断有向图是否有环、求 DAG 上的 DP 等 | parallel-courses-iii largest-color-value-in-a-directed-graph |
有 | copypasta/graph.go:3552 |
|
| 1783 | CF1783F | 正则就是所有点的度数都一样 | 题解 https://www.luogu.com.cn/blog/DaiRuiChen007/CFF | copypasta/graph.go:3257 |
||
| 1794 | CF1794E | 与换根 DP 结合: | 参考代码 https://codeforces.com/contest//submission/196015876 | copypasta/graph_tree.go:125 |
||
| 1800 | CF33B | EXTRA: 打印负环 | 有 | copypasta/graph.go:1951 |
||
| 1800 | CF161D | 或者说,每个点至多被 O(log n) 个在重心拐弯的路径覆盖 | 有 | copypasta/graph_tree.go:771 |
||
| 1800 | CF161D | 但是,这里的重儿子不再是子树大小最大的,而是深度最大的子节点(长儿子) | 距离等于 k 的点对数 | 有 | copypasta/graph_tree.go:1943 |
|
| 1800 | CF161D | 树上启发式合并 DSU on tree / small to large | 距离等于 k 的点对数 | 有 | copypasta/graph_tree.go:2097 |
|
| 1800 | CF173B | 0-1 最短路 / 0-1 BFS | 有 | copypasta/graph.go:1809 |
||
| 1800 | CF645D | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 有 | copypasta/graph.go:3558 |
||
| 1800 | CF721C | 可以用来判断有向图是否有环、求 DAG 上的 DP 等 | parallel-courses-iii largest-color-value-in-a-directed-graph |
有 | copypasta/graph.go:3553 |
|
| 1800 | CF1063B | 0-1 最短路 / 0-1 BFS | 有 | copypasta/graph.go:1810 |
||
| 1800 | CF1076D | 最短路树 | 最短路树上跑拓扑排序 | number-of-restricted-paths-from-first-to-last-node | 有 | copypasta/graph.go:1562 |
| 1800 | CF1426E | 如果满流,则表示恰好选了 lim 个元素 | 完全二分图 + 多对多 | 有 | copypasta/graph_flow.go:759 |
|
| 1800 | CF1437C | 带权二分图匹配 | 有 | copypasta/graph_flow.go:87 |
||
| 1800 | CF1437C | 这样跑 MCMF 得到的结果是匹配全部 A(或 B)的最小花费 | 有 | copypasta/graph_flow.go:253 |
||
| 1800 | CF1437C | 如果满流,则表示恰好选了 lim 个元素 | 完全二分图 + 一对一 | 有 | copypasta/graph_flow.go:760 |
|
| 1800 | CF1468J | 边权 [0,1] 的随机完全图的 MST 权值和是 ζ(3) = 1.202… | 分类讨论 | 有 | copypasta/graph.go:2322 |
|
| 1800 | CF1525D | 如果满流,则表示恰好选了 lim 个元素 | 完全二分图 + 一对一 | 有 | copypasta/graph_flow.go:761 |
|
| 1800 | CF1572A | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | sequence-reconstruction | 有 | copypasta/graph.go:3560 |
|
| 1800 | CF1721D | BFS | 带撤销的 BFS | 有 | copypasta/graph.go:422 |
|
| 1800 | CF1725M | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 分层图最短路 | 有 | copypasta/graph.go:1523 |
|
| 1800 | CF1805D | 反例: | tree-diameter | 有 | copypasta/graph_tree.go:522 |
|
| 1800 | CF1851F | BFS | 带撤销的 BFS | 有 | copypasta/graph.go:423 |
|
| 1800 | CF1915G | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 双关键字 | copypasta/graph.go:1524 |
||
| 1900 | CF20C | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 有 | copypasta/graph.go:1515 |
||
| 1900 | CF25C | EXTRA: 打印负环 | 动态加边 | copypasta/graph.go:1952 |
||
| 1900 | CF25C | 动态加边 | copypasta/graph.go:2004 |
|||
| 1900 | CF41E | a(n) = C(n, 2)-n/2+1 n%2==1 | 构造 | 有 | copypasta/graph.go:54 |
|
| 1900 | CF685B | 树的重心是点分治中的一个划分步骤 | 求每棵子树的重心 | 有 | copypasta/graph_tree.go:722 |
|
| 1900 | CF691E | EXTRA: 打印负环 | 传递闭包+矩阵快速幂 | 有 | copypasta/graph.go:1953 |
|
| 1900 | CF711D | 更简单的做法是倍增 | longest-cycle-in-a-graph | 有 | copypasta/graph.go:3964 |
|
| 1900 | CF1076E | 与深度时间戳结合,二分求某个子树在某个深度的节点范围 | 有 | copypasta/graph_tree.go:427 |
||
| 1900 | CF1095F | 边权 [0,1] 的随机完全图的 MST 权值和是 ζ(3) = 1.202… | 边权为 a[i]+a[j] 的混合 MST | 有 | copypasta/graph.go:2323 |
|
| 1900 | CF1242B | 反图的连通分量 O(n+m) | copypasta/graph.go:3028 |
|||
| 1900 | CF1245D | 有些题目需要在连通分量上求 MST,这时就需要用到 root | 超级源点 打印方案 | min-cost-to-connect-all-points | 有 | copypasta/graph.go:2396 |
| 1900 | CF1272E | BFS | 建模 | 有 | copypasta/graph.go:424 |
|
| 1900 | CF1328E | 另见后面的 inOutTimestamp | 例题 | minimum-score-after-removals-on-a-tree check-if-dfs-strings-are-palindromes |
有 | copypasta/graph_tree.go:297 |
| 1900 | CF1360G | 注意这题用到了操纵超级源点的技巧:容量限制与解除容量限制 | 网格模型 | 有 | copypasta/graph_flow.go:119 |
|
| 1900 | CF1404B | 反例: | tree-diameter | 有 | copypasta/graph_tree.go:523 |
|
| 1900 | CF1651D | 网格图 DFS | pacific-atlantic-water-flow | 有 | copypasta/graph_grid.go:18 |
|
| 1900 | CF1842D | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 转换 | copypasta/graph.go:1525 |
||
| 1900 | CF1846G | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 吃药 状压 | 有 | copypasta/graph.go:1526 |
|
| 1900 | CF1899G | 另见后面的 inOutTimestamp | minimum-score-after-removals-on-a-tree check-if-dfs-strings-are-palindromes |
有 | copypasta/graph_tree.go:298 |
|
| 1900 | CF1927F | DFS | 找包含指定边的环 | 有 | copypasta/graph.go:168 |
|
| 1900 | CF2154D | 黑白染色 | 奇偶层染色 | 有 | copypasta/graph_tree.go:41 |
|
| 1900 | CF2154D | 对于无向树,BFS 序的逆序就是拓扑序 | 有 | copypasta/graph_tree.go:50 |
||
| 2000 | CF33D | O(n) | kth-ancestor-of-a-tree-node | copypasta/graph_tree.go:1153 |
||
| 2000 | CF237E | 这样跑 MCMF 得到的结果是匹配全部 A(或 B)的最小花费 | | 代码 https://codeforces.com/problemset/submission/237/241222973 | 有 | copypasta/graph_flow.go:252 |
|
| 2000 | CF237E | 要求初始网络中无负权圈 | 有 | copypasta/graph_flow.go:748 |
||
| 2000 | CF337D | 反例: | tree-diameter | 有 | copypasta/graph_tree.go:524 |
|
| 2000 | CF337D | 从任意直径的两个端点出发跑 DFS,取最大值 | 有 | copypasta/graph_tree.go:637 |
||
| 2000 | CF383C | 另见后面的 inOutTimestamp | minimum-score-after-removals-on-a-tree check-if-dfs-strings-are-palindromes |
有 | copypasta/graph_tree.go:300 |
|
| 2000 | CF412D | a(n) = C(n, 2)-n/2+1 n%2==1 | 归纳 | 有 | copypasta/graph.go:55 |
|
| 2000 | CF449B | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 【理解本质】通过最短路找到可以删除的边 | 有 | copypasta/graph.go:1527 |
|
| 2000 | CF468B | A,B 同时或都不在 (¬(A^B)) A⇒B, B⇒A, ¬A⇒¬B, ¬B⇒¬A | 建边练习 | 有 | copypasta/graph.go:3875 |
|
| 2000 | CF540C | 综合 | 有 | copypasta/graph_grid.go:45 |
||
| 2000 | CF545E | st 也可以是一个点集,这相当于同时对多个点跑最短路 | MST | 有 | copypasta/graph.go:1528 |
|
| 2000 | CF877E | 另见后面的 inOutTimestamp | minimum-score-after-removals-on-a-tree check-if-dfs-strings-are-palindromes |
有 | copypasta/graph_tree.go:299 |
|
| 2000 | CF938D | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 超级源点 | 有 | copypasta/graph.go:1530 |
|
| 2000 | CF999E | 强连通分量分解 Strongly Connected Component (SCC) | 有 | copypasta/graph.go:3645 |
||
| 2000 | CF1142B | 更简单的做法是倍增 | 可以做到线性 | 有 | copypasta/graph.go:3970 |
|
| 2000 | CF1304E | O(n) | kth-ancestor-of-a-tree-node | 有 | copypasta/graph_tree.go:1154 |
|
| 2000 | CF1385E | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 混合图拓扑排序+定向 | sequence-reconstruction | 有 | copypasta/graph.go:3561 |
| 2000 | CF1702G2 | if nodes[v].l > nodes[w].l { v, w = w, v } | minimum-score-after-removals-on-a-tree | 有 | copypasta/graph_tree.go:345 |
|
| 2000 | CF1702G2 | O(n) | 分类讨论 | kth-ancestor-of-a-tree-node | 有 | copypasta/graph_tree.go:1155 |
| 2000 | CF1702G2 | 如果 to 不是 v 的子孙,返回 -1 | 判断节点列表能否连成线(在某条路径上) | 有 | copypasta/graph_tree.go:1279 |
|
| 2000 | CF1770D | 更简单的做法是倍增 | 有 | copypasta/graph.go:3971 |
||
| 2000 | CF1857G | 完全图找个最小的 a[i] 和其余点连边 | 有 | copypasta/graph.go:2325 |
||
| 2000 | CF1941G | 0-1 最短路 / 0-1 BFS | 也可以 BFS(需要合适的建图方式) | 有 | copypasta/graph.go:1811 |
|
| 2024 | CF527120B | 提示:结合【贡献法】 | CCPC 上海市赛 | copypasta/graph_tree.go:1005 |
||
| 2100 | CF190E | 反图的连通分量 O(n+m) | 有 | copypasta/graph.go:3029 |
||
| 2100 | CF208E | 与深度时间戳结合,二分求某个子树在某个深度的节点范围 | 有 | copypasta/graph_tree.go:428 |
||
| 2100 | CF208E | 但是,这里的重儿子不再是子树大小最大的,而是深度最大的子节点(长儿子) | 树上 k 级祖先 | 有 | copypasta/graph_tree.go:1944 |
|
| 2100 | CF208E | 树上启发式合并 DSU on tree / small to large | 有 | copypasta/graph_tree.go:2099 |
||
| 2100 | CF269C | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 构造 | sequence-reconstruction | 有 | copypasta/graph.go:3562 |
| 2100 | CF321C | 或者说,每个点至多被 O(log n) 个在重心拐弯的路径覆盖 | 有 | copypasta/graph_tree.go:772 |
||
| 2100 | CF343D | 注:如果只有路径修改+查询,可以用欧拉序列 + 树状数组/线段树,见《挑战》p.332 | 有 | copypasta/graph_tree.go:1826 |
||
| 2100 | CF455C | 反例: | 两棵树连边,连边之后直径最小 | tree-diameter | 有 | copypasta/graph_tree.go:525 |
| 2100 | CF498C | 注意这题用到了操纵超级源点的技巧:容量限制与解除容量限制 | 建模题,推荐 | 有 | copypasta/graph_flow.go:120 |
|
| 2100 | CF498C | 给一 DAG,求它的最大反链大小、一组最大反链构造以及所有最大反链的并 | 最大流 建模 | 有 | copypasta/graph_flow.go:346 |
|
| 2100 | CF507E | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 双关键字+记录路径编号 | minimum-cost-to-buy-apples | 有 | copypasta/graph.go:1533 |
| 2100 | CF519E | O(n) | 到两点距离相同的点的数量 | kth-ancestor-of-a-tree-node | 有 | copypasta/graph_tree.go:1157 |
| 2100 | CF546E | 注意这题用到了操纵超级源点的技巧:容量限制与解除容量限制 | 有 | copypasta/graph_flow.go:121 |
||
| 2100 | CF546E | 给一 DAG,求它的最大反链大小、一组最大反链构造以及所有最大反链的并 | 模板题 输出具体方案 | 有 | copypasta/graph_flow.go:347 |
|
| 2100 | CF546E | EXTRA: 求流的分配方案(即反向边上的 cap) | 有 | copypasta/graph_flow.go:456 |
||
| 2100 | CF609E | O(n) | maximize-value-of-function-in-a-ball-passing-game minimum-edge-weight-equilibrium-queries-in-a-tree |
有 | copypasta/graph_tree.go:1179 |
|
| 2100 | CF609E | EXTRA: 倍增的时候维护其他属性,如边权最值等 | 有 | copypasta/graph_tree.go:1366 |
||
| 2100 | CF609E | 也可以转换成子树所有点的 dis 都增加了 delta,用欧拉序+差分树状数组维护 | 与最小生成树结合(边权) | 有 | copypasta/graph_tree.go:1829 |
|
| 2100 | CF620E | 另见后面的 inOutTimestamp | minimum-score-after-removals-on-a-tree check-if-dfs-strings-are-palindromes |
有 | copypasta/graph_tree.go:301 |
|
| 2100 | CF702E | 如果题目涉及到基环树上的路径,用倍增会更简单 | find-closest-node-to-given-two-nodes maximize-value-of-function-in-a-ball-passing-game |
copypasta/graph.go:3960 |
||
| 2100 | CF734E | 反例: | 转换的好题 | tree-diameter find-minimum-diameter-after-merging-two-trees |
有 | copypasta/graph_tree.go:527 |
| 2100 | CF788B | a(n) = C(n, 2)-n/2+1 n%2==1 | 转换 | 有 | copypasta/graph.go:56 |
|
| 2100 | CF877D | 0-1 最短路 / 0-1 BFS | 也可以 BFS | 有 | copypasta/graph.go:1812 |
|
| 2100 | CF920E | 反图的连通分量 O(n+m) | 有 | copypasta/graph.go:3030 |
||
| 2100 | CF1000E | 反例: | e-BCC | find-minimum-diameter-after-merging-two-trees | 有 | copypasta/graph_tree.go:528 |
| 2100 | CF1005F | st 也可以是一个点集,这相当于同时对多个点跑最短路 | minimum-cost-to-buy-apples | 有 | copypasta/graph.go:1534 |
|
| 2100 | CF1029E | 树上贪心 | 有 | copypasta/graph_tree.go:58 |
||
| 2100 | CF1108F | 完全图找个最小的 a[i] 和其余点连边 | MST 的唯一性 | copypasta/graph.go:2327 |
||
| 2100 | CF1354E | 注:二分图也叫偶图 | 与分组背包结合 | is-graph-bipartite possible-bipartition |
有 | copypasta/graph.go:3120 |
| 2100 | CF1547G | DFS | 对每个点 i,判断 1 到 i 有多少条路径(0/1/>=2/∞) | 有 | copypasta/graph.go:169 |
|
| 2100 | CF1547G | vis[v] == 2:该顶点已经被访问,其子树已遍历完 | find-eventual-safe-states | 有 | copypasta/graph.go:301 |
|
| 2100 | CF1863E | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 与「环形」结合 | sequence-reconstruction | copypasta/graph.go:3563 |
|
| 2100 | CF1971H | A,B 同时或都不在 (¬(A^B)) A⇒B, B⇒A, ¬A⇒¬B, ¬B⇒¬A | 建边练习 | 有 | copypasta/graph.go:3876 |
|
| 2200 | CF553C | 注:二分图也叫偶图 | 染色的技巧 | 有 | copypasta/graph.go:3122 |
|
| 2200 | CF567E | st 也可以是一个点集,这相当于同时对多个点跑最短路 | * 关键边、伪关键边(与割边结合) | minimum-cost-to-buy-apples | 有 | copypasta/graph.go:1535 |
| 2200 | CF570D | 与深度时间戳结合,二分求某个子树在某个深度的节点范围 | 有 | copypasta/graph_tree.go:431 |
||
| 2200 | CF570D | 树上启发式合并 DSU on tree / small to large | 有 | copypasta/graph_tree.go:2100 |
||
| 2200 | CF587C | O(n) | checking-existence-of-edge-length-limited-paths checking-existence-of-edge-length-limited-paths-ii |
有 | copypasta/graph_tree.go:1185 |
|
| 2200 | CF587C | 也可以转换成子树所有点的 dis 都增加了 delta,用欧拉序+差分树状数组维护 | 归并树 | 有 | copypasta/graph_tree.go:1830 |
|
| 2200 | CF590C | 0-1 最短路 / 0-1 BFS | 网格图 | 有 | copypasta/graph.go:1813 |
|
| 2200 | CF653D | 注意这题用到了操纵超级源点的技巧:容量限制与解除容量限制 | 转换 | 有 | copypasta/graph_flow.go:122 |
|
| 2200 | CF662B | 注:二分图也叫偶图 | 染色的技巧 | copypasta/graph.go:3123 |
||
| 2200 | CF723E | a(n) = C(n, 2)-n/2+1 n%2==1 | 加边 | 有 | copypasta/graph.go:57 |
|
| 2200 | CF723E | 模板题(输出边) | 虚点 | valid-arrangement-of-pairs cracking-the-safe |
有 | copypasta/graph.go:740 |
| 2200 | CF733F | 完全图找个最小的 a[i] 和其余点连边 | 与 LCA 结合 | 有 | copypasta/graph.go:2328 |
|
| 2200 | CF733F | O(n) | maximize-value-of-function-in-a-ball-passing-game minimum-edge-weight-equilibrium-queries-in-a-tree |
有 | copypasta/graph_tree.go:1180 |
|
| 2200 | CF821D | 0-1 最短路 / 0-1 BFS | 建图技巧 | 有 | copypasta/graph.go:1814 |
|
| 2200 | CF915D | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 好题 | sequence-reconstruction | 有 | copypasta/graph.go:3564 |
| 2200 | CF980E | O(n) | 有 | copypasta/graph_tree.go:1191 |
||
| 2200 | CF1037E | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 拓扑思想 | sequence-reconstruction | 有 | copypasta/graph.go:3565 |
| 2200 | CF1100E | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 混合图拓扑排序+定向 | 有 | copypasta/graph.go:3566 |
|
| 2200 | CF1105E | if !d { | 有 | copypasta/graph.go:4386 |
||
| 2200 | CF1196F | a(n) = C(n, 2)-n/2+1 n%2==1 | 第k小路径 | 有 | copypasta/graph.go:58 |
|
| 2200 | CF1283F | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 与堆结合 | 有 | copypasta/graph.go:3567 |
|
| 2200 | CF1335F | 更简单的做法是倍增 | 有 | copypasta/graph.go:3972 |
||
| 2200 | CF1470D | DFS | 先染色,再递归 | 有 | copypasta/graph.go:170 |
|
| 2200 | CF1486E | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 涉及到相邻两条边的最短路 | minimum-cost-to-buy-apples | 有 | copypasta/graph.go:1536 |
| 2200 | CF1535E | O(n) | copypasta/graph_tree.go:1158 |
|||
| 2200 | CF1535E | 从 v 开始,向上跳到指定深度 d | copypasta/graph_tree.go:1225 |
|||
| 2200 | CF1537F | 注:二分图也叫偶图 | possible-bipartition | copypasta/graph.go:3121 |
||
| 2200 | CF1635E | 建图 | 有 | copypasta/graph.go:22 |
||
| 2200 | CF1848D | 反复迭代 a <- a + a%10 | copypasta/graph.go:4678 |
|||
| 2200 | CF1907G | 更简单的做法是倍增 | 有 | copypasta/graph.go:3973 |
||
| 2200 | CF2118D2 | 如果无论 v 怎么走,都会走到环中(无限走下去),返回 false | 有 | copypasta/graph.go:206 |
||
| 2200 | CF2118D2 | 完全图找个最小的 a[i] 和其余点连边 | 有 | copypasta/graph.go:2329 |
||
| 2300 | CF78E | 超级源点连左部,右部连超级汇点,所有边的容量均为 1,最大流即为最大匹配 | 有 | copypasta/graph_flow.go:82 |
||
| 2300 | CF160D | 完全图找个最小的 a[i] 和其余点连边 | 关键边、伪关键边(与割边结合) | 有 | copypasta/graph.go:2331 |
|
| 2300 | CF294E | 树中所有点到某个点的距离和中,到重心的距离和是最小的;如果有两个重心,那么距离和一样 | 有 | copypasta/graph_tree.go:701 |
||
| 2300 | CF294E | 树的重心是点分治中的一个划分步骤 | 有 | copypasta/graph_tree.go:723 |
||
| 2300 | CF311E | 对于左部,不割表示选,割表示不选,要反过来思考 | 建图设计 | 有 | copypasta/graph_flow.go:58 |
|
| 2300 | CF600E | 树上启发式合并 DSU on tree / small to large | 有 | copypasta/graph_tree.go:2101 |
||
| 2300 | CF708C | 树的重心是点分治中的一个划分步骤 | Edge replacement 后哪些点可以是重心 | copypasta/graph_tree.go:724 |
||
| 2300 | CF715B | st 也可以是一个点集,这相当于同时对多个点跑最短路 | https://leetcode.cn/problems/modify-graph-edge-weights/ | modify-graph-edge-weights | 有 | copypasta/graph.go:1537 |
| 2300 | CF786B | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 线段树优化建图 | modify-graph-edge-weights | 有 | copypasta/graph.go:1538 |
| 2300 | CF788C | a(n) = C(n, 2)-n/2+1 n%2==1 | 转换 | 有 | copypasta/graph.go:59 |
|
| 2300 | CF825E | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 与堆结合 | 有 | copypasta/graph.go:3568 |
|
| 2300 | CF891C | 完全图找个最小的 a[i] 和其余点连边 | 判断给定的边是否均在同一棵 MST 中 | 有 | copypasta/graph.go:2330 |
|
| 2300 | CF893F | 另见后面的 inOutTimestamp | 可持久化线段树 | check-if-dfs-strings-are-palindromes | 有 | copypasta/graph_tree.go:302 |
| 2300 | CF1009F | 具体实现时还有一些技巧,见后面的有关 DP 优化的 EXTRA | 子树深度众数 | 有 | copypasta/graph_tree.go:1950 |
|
| 2300 | CF1009F | 树上启发式合并 DSU on tree / small to large | 有 | copypasta/graph_tree.go:2102 |
||
| 2300 | CF1200F | 更简单的做法是倍增 | 拆点 | 有 | copypasta/graph.go:3974 |
|
| 2300 | CF1528C | 另见后面的 inOutTimestamp | 好题(需要充分利用入出时间戳的性质) | 有 | copypasta/graph_tree.go:303 |
|
| 2300 | CF1693C | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 转换 | modify-graph-edge-weights | 有 | copypasta/graph.go:1540 |
| 2300 | CF1790G | BFS | 锻炼分类讨论能力 | copypasta/graph.go:426 |
||
| 2300 | CF1805E | 树上启发式合并 DSU on tree / small to large | copypasta/graph_tree.go:2103 |
|||
| 2300 | CF1843F2 | O(n) | checking-existence-of-edge-length-limited-paths checking-existence-of-edge-length-limited-paths-ii |
copypasta/graph_tree.go:1186 |
||
| 2300 | CF1878G | O(n) | checking-existence-of-edge-length-limited-paths checking-existence-of-edge-length-limited-paths-ii |
copypasta/graph_tree.go:1187 |
||
| 2300 | CF1955H | 网格图 BFS | escape-the-spreading-fire | copypasta/graph_grid.go:37 |
||
| 2300 | CF2002D2 | 另见后面的 inOutTimestamp | copypasta/graph_tree.go:304 |
|||
| 2400 | CF21D | 模板题(输出边) | 可以重复经过边的欧拉回路 | valid-arrangement-of-pairs cracking-the-safe |
copypasta/graph.go:741 |
|
| 2400 | CF209C | 模板题(输出边) | 添加边使得图存在欧拉回路 | valid-arrangement-of-pairs cracking-the-safe |
有 | copypasta/graph.go:742 |
| 2400 | CF246E | 与深度时间戳结合,二分求某个子树在某个深度的节点范围 | CF208E + 离线 | 有 | copypasta/graph_tree.go:432 |
|
| 2400 | CF246E | 树上启发式合并 DSU on tree / small to large | 有 | copypasta/graph_tree.go:2104 |
||
| 2400 | CF258E | 另见后面的 inOutTimestamp | 有 | copypasta/graph_tree.go:305 |
||
| 2400 | CF375D | 树上启发式合并 DSU on tree / small to large | 有 | copypasta/graph_tree.go:2105 |
||
| 2400 | CF379F | 反例: | find-minimum-diameter-after-merging-two-trees | 有 | copypasta/graph_tree.go:529 |
|
| 2400 | CF379F | O(n) | 有 | copypasta/graph_tree.go:1159 |
||
| 2400 | CF467D | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 缩点后的反图拓扑序 DP | 有 | copypasta/graph.go:3569 |
|
| 2400 | CF467D | 强连通分量分解 Strongly Connected Component (SCC) | 缩点 + DAG DP | 有 | copypasta/graph.go:3646 |
|
| 2400 | CF593D | O(n) | 单边修改,输出 floor(val / 路径边权乘积) 只需模拟 LCA | 有 | copypasta/graph_tree.go:1160 |
|
| 2400 | CF632F | a(n) = C(n, 2)-n/2+1 n%2==1 | 转换 | copypasta/graph.go:60 |
||
| 2400 | CF632F | 完全图找个最小的 a[i] 和其余点连边 | find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree | copypasta/graph.go:2333 |
||
| 2400 | CF653E | 反图的连通分量 O(n+m) | 单点度数限制 | 有 | copypasta/graph.go:3031 |
|
| 2400 | CF679C | 网格图 DFS | 有 | copypasta/graph_grid.go:28 |
||
| 2400 | CF802N | 如果满流,则表示恰好选了 lim 个元素 | 时间约束:从第 i 天连向第 i+1 天,容量 inf(延后无限制),费用 0(等待不花钱) | 有 | copypasta/graph_flow.go:762 |
|
| 2400 | CF911F | 反例: | 贪心 | find-minimum-diameter-after-merging-two-trees | 有 | copypasta/graph_tree.go:530 |
| 2400 | CF911F | 从任意直径的两个端点出发跑 DFS,取最大值 | 有 | copypasta/graph_tree.go:638 |
||
| 2400 | CF914E | 或者说,每个点至多被 O(log n) 个在重心拐弯的路径覆盖 | 有 | copypasta/graph_tree.go:773 |
||
| 2400 | CF914E | 5. 去掉整个重心连通块的数据,处理下一个重心连通块 | 为例 | 有 | copypasta/graph_tree.go:876 |
|
| 2400 | CF916E | 另见后面的 inOutTimestamp | 有 | copypasta/graph_tree.go:306 |
||
| 2400 | CF916E | 返回 [f 是 v 的祖先节点] | 有 | copypasta/graph_tree.go:420 |
||
| 2400 | CF916E | O(n) | 有 | copypasta/graph_tree.go:1161 |
||
| 2400 | CF916E | 如果 to 不是 v 的子孙,返回 -1 | 有 | copypasta/graph_tree.go:1280 |
||
| 2400 | CF1004E | 反例: | 直径的性质 | find-minimum-diameter-after-merging-two-trees | copypasta/graph_tree.go:531 |
|
| 2400 | CF1038E | 模板题(输出边) | 删除边使得图存在欧拉路径 | valid-arrangement-of-pairs cracking-the-safe |
有 | copypasta/graph.go:743 |
| 2400 | CF1059E | 如果求【至少】d 距离的目标节点,可以改成往上跳至多 d-1,然后再往上跳一个节点 | find-weighted-median-node-in-tree | 有 | copypasta/graph_tree.go:1261 |
|
| 2400 | CF1059E | EXTRA: 倍增的时候维护其他属性,如边权最值等 | 有 | copypasta/graph_tree.go:1369 |
||
| 2400 | CF1082G | 对于左部,不割表示选,割表示不选,要反过来思考 | 有 | copypasta/graph_flow.go:59 |
||
| 2400 | CF1139E | 正则就是所有点的度数都一样 | 有 | copypasta/graph.go:3255 |
||
| 2400 | CF1139E | 常见于棋盘放置 1x2 骨牌,或者一些排列型约束的题目 | 有 | copypasta/graph.go:3297 |
||
| 2400 | CF1174F | 或者说,每个点至多被 O(log n) 个在重心拐弯的路径覆盖 | 有 | copypasta/graph_tree.go:774 |
||
| 2400 | CF1174F | 也可以转换成子树所有点的 dis 都增加了 delta,用欧拉序+差分树状数组维护 | 好题 | 有 | copypasta/graph_tree.go:1831 |
|
| 2400 | CF1186F | 模板题(输出边) | cracking-the-safe | copypasta/graph.go:744 |
||
| 2400 | CF1210D | 因此枚举的复杂度为 ∑in[w]*out[w] | 满足点权 a > b > c 的长为 3 的路径个数 | paths-in-maze-that-lead-to-same-room | 有 | copypasta/graph.go:4483 |
| 2400 | CF1340C | 0-1 最短路 / 0-1 BFS | 建图技巧 | 有 | copypasta/graph.go:1815 |
|
| 2400 | CF1369E | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 安排吃菜顺序 | 有 | copypasta/graph.go:3570 |
|
| 2400 | CF1408E | 完全图找个最小的 a[i] 和其余点连边 | 二分图无环 | find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree | 有 | copypasta/graph.go:2334 |
| 2400 | CF1442C | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 分层图最短路 空间压缩 | modify-graph-edge-weights | 有 | copypasta/graph.go:1541 |
| 2400 | CF1442C | 0-1 最短路 / 0-1 BFS | 有 | copypasta/graph.go:1816 |
||
| 2400 | CF1463E | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 缩点后的拓扑序 | 有 | copypasta/graph.go:3571 |
|
| 2400 | CF1473E | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 分层图最短路 转换 | modify-graph-edge-weights | 有 | copypasta/graph.go:1542 |
| 2400 | CF1491E | 其它 | 有 | copypasta/graph_tree.go:77 |
||
| 2400 | CF1527D | if nodes[v].l > nodes[w].l { v, w = w, v } | minimum-score-after-removals-on-a-tree | 有 | copypasta/graph_tree.go:346 |
|
| 2400 | CF1527D | O(n) | 分类讨论(思路同 CF1702G2,但不需要倍增) | kth-ancestor-of-a-tree-node | 有 | copypasta/graph_tree.go:1156 |
| 2400 | CF1578L | 把边权信息转化成点权信息 | 有 | copypasta/graph.go:2878 |
||
| 2400 | CF1615E | 树上贪心 | 有 | copypasta/graph_tree.go:59 |
||
| 2400 | CF1615E | 具体实现时还有一些技巧,见后面的有关 DP 优化的 EXTRA | 至多 k 条不相交链 | 有 | copypasta/graph_tree.go:1951 |
|
| 2400 | CF1633E | 完全图找个最小的 a[i] 和其余点连边 | 绝对值 MST | find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree | copypasta/graph.go:2335 |
|
| 2400 | CF1707C | DFS | 与 MST 结合 | 有 | copypasta/graph.go:171 |
|
| 2400 | CF1707C | 完全图找个最小的 a[i] 和其余点连边 | 与 DFS 搜索树结合 | find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree | 有 | copypasta/graph.go:2336 |
| 2400 | CF1715E | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 斜率优化 | modify-graph-edge-weights | 有 | copypasta/graph.go:1543 |
| 2400 | CF1749E | 平面图最小割转最短路 | 有 | copypasta/graph.go:39 |
||
| 2400 | CF1749E | 0-1 最短路 / 0-1 BFS | 建图技巧 | 有 | copypasta/graph.go:1817 |
|
| 2400 | CF1753D | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 建模+转换+多源最短路 | 有 | copypasta/graph.go:1544 |
|
| 2400 | CF1819C | 反例: | find-minimum-diameter-after-merging-two-trees | 有 | copypasta/graph_tree.go:532 |
|
| 2400 | CF1860E | BFS | 中转点 Fast Travel Text Editor | 有 | copypasta/graph.go:427 |
|
| 2400 | CF1874B | BFS | 有 | copypasta/graph.go:428 |
||
| 2400 | CF1902F | O(n) | 线性基 | 有 | copypasta/graph_tree.go:1162 |
|
| 2400 | CF1913E | 注意这题用到了操纵超级源点的技巧:容量限制与解除容量限制 | todo | copypasta/graph_flow.go:123 |
||
| 2400 | CF1936C | 建图 | 宝可梦对战 | 有 | copypasta/graph.go:23 |
|
| 2400 | CF1981D | 如果 n 是偶数,会去掉一些边 | copypasta/graph.go:812 |
|||
| 2500 | CF152E | 返回:连通 k 个关键节点的最小代价 | 输出方案 | copypasta/graph.go:2240 |
||
| 2500 | CF416E | EXTRA: 打印负环 | 在最短路上的边 | 有 | copypasta/graph.go:1954 |
|
| 2500 | CF605D | BFS | 线段树二分优化 BFS | 有 | copypasta/graph.go:429 |
|
| 2500 | CF628F | 超级源点连左部,右部连超级汇点,所有边的容量均为 1,最大流即为最大匹配 | 建图设计 | 有 | copypasta/graph_flow.go:84 |
|
| 2500 | CF835F | 更简单的做法是倍增 | 去掉(基环上的)一条边后的最小直径 前后缀分解 环形问题 形状设计 | 有 | copypasta/graph.go:3975 |
|
| 2500 | CF835F | 求一个基环 | 有 | copypasta/graph.go:4082 |
||
| 2500 | CF875F | 完全图找个最小的 a[i] 和其余点连边 | 基环树 | find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree | 有 | copypasta/graph.go:2337 |
| 2500 | CF875F | 更简单的做法是倍增 | 最小生成基环树 | 有 | copypasta/graph.go:3976 |
|
| 2500 | CF1111E | 但这样做还要再排序,并使用几个额外的数组,所以相比之下直接 DFS 更好 | copypasta/graph_tree.go:1667 |
|||
| 2500 | CF1120D | 完全图找个最小的 a[i] 和其余点连边 | find-critical-and-pseudo-critical-edges-in-minimum-spanning-tree | copypasta/graph.go:2338 |
||
| 2500 | CF1253F | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 多源到单源 + 巧妙转化 | 有 | copypasta/graph.go:1546 |
|
| 2500 | CF1361C | 模板题(输出边) | 转换 | 有 | copypasta/graph.go:745 |
|
| 2500 | CF1407E | BFS | 节点涂色 堵路 最大化最短路长度 | 有 | copypasta/graph.go:430 |
|
| 2500 | CF1467E | 另见后面的 inOutTimestamp | 有 | copypasta/graph_tree.go:307 |
||
| 2500 | CF1508C | 反图的连通分量 O(n+m) | MST | 有 | copypasta/graph.go:3032 |
|
| 2500 | CF1528D | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 建模【好题】 | 有 | copypasta/graph.go:1548 |
|
| 2500 | CF1725E | 但这样做还要再排序,并使用几个额外的数组,所以相比之下直接 DFS 更好 | copypasta/graph_tree.go:1668 |
|||
| 2500 | CF1767E | if !d { | 最小点覆盖 = 所有点 - 最大独立集 | 有 | copypasta/graph.go:4387 |
|
| 2500 | CF1824C | 树上启发式合并 DSU on tree / small to large | 有 | copypasta/graph_tree.go:2106 |
||
| 2500 | CF1842F | 树的重心是点分治中的一个划分步骤 | 结论 | 有 | copypasta/graph_tree.go:725 |
|
| 2500 | CF1994F | 模板题(输出边) | copypasta/graph.go:746 |
|||
| 2500 | CF2026E | 对于左部,不割表示选,割表示不选,要反过来思考 | 有 | copypasta/graph_flow.go:61 |
||
| 2500 | CF2026E | 超级源点连左部,右部连超级汇点,所有边的容量均为 1,最大流即为最大匹配 | 最大权闭合子图 / Hall 定理 | 有 | copypasta/graph_flow.go:83 |
|
| 2500 | CF2057E2 | EXTRA: 打印负环 | 动态加边 wt = 0 | 有 | copypasta/graph.go:1955 |
|
| 2500 | CF2057E2 | 动态加边 | wt = 0 | 有 | copypasta/graph.go:2005 |
|
| 2600 | CF36E | 模板题(输出边) | 两条欧拉路径的并 | copypasta/graph.go:747 |
||
| 2600 | CF85E | 注:二分图也叫偶图 | 转换 | 有 | copypasta/graph.go:3124 |
|
| 2600 | CF196E | st 也可以是一个点集,这相当于同时对多个点跑最短路 | 传送门 | 有 | copypasta/graph.go:1547 |
|
| 2600 | CF196E | 完全图找个最小的 a[i] 和其余点连边 | 传送门 | 有 | copypasta/graph.go:2339 |
|
| 2600 | CF241E | 这样,在无负环时会得到一组非正数解(先求一组解,然后再全部加上 Δ) | minimum-time-to-complete-all-tasks t3fKg1 |
有 | copypasta/graph.go:1883 |
|
| 2600 | CF346D | 0-1 最短路 / 0-1 BFS | 结合拓扑排序 | 有 | copypasta/graph.go:1818 |
|
| 2600 | CF346D | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 结合 0-1 BFS | 有 | copypasta/graph.go:3572 |
|
| 2600 | CF372D | 另见后面的 inOutTimestamp | 有 | copypasta/graph_tree.go:308 |
||
| 2600 | CF372D | O(n) | 有 | copypasta/graph_tree.go:1164 |
||
| 2600 | CF527E | 模板题(输出边) | 有 | copypasta/graph.go:748 |
||
| 2600 | CF547D | 注:二分图也叫偶图 | 转换 | 有 | copypasta/graph.go:3125 |
|
| 2600 | CF568C | A,B 同时或都不在 (¬(A^B)) A⇒B, B⇒A, ¬A⇒¬B, ¬B⇒¬A | copypasta/graph.go:3879 |
|||
| 2600 | CF700C | 技巧 2:给边权加上很大的数来约束删除次数 | 推荐 | copypasta/graph_flow.go:194 |
||
| 2600 | CF741C | 注:二分图也叫偶图 | 转换 | 有 | copypasta/graph.go:3126 |
|
| 2600 | CF1107F | 如果满流,则表示恰好选了 lim 个元素 | maximum-and-sum-of-array select-cells-in-grid-with-maximum-score |
有 | copypasta/graph_flow.go:770 |
|
| 2600 | CF1110F | 另见后面的 inOutTimestamp | 有 | copypasta/graph_tree.go:310 |
||
| 2600 | CF1209F | 路径的点权序列的字典序最小(边权为 1) | 有 | copypasta/graph.go:554 |
||
| 2600 | CF1301F | 网格图 BFS | BFS 进阶玩法 | escape-the-spreading-fire | 有 | copypasta/graph_grid.go:38 |
| 2600 | CF1344C | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | ∀ 与 ∃ | 有 | copypasta/graph.go:3573 |
|
| 2600 | CF1416D | 另见后面的 inOutTimestamp | 有 | copypasta/graph_tree.go:311 |
||
| 2600 | CF1515F | 数学归纳法 | 有 | copypasta/graph.go:34 |
||
| 2600 | CF1657F | A,B 同时或都不在 (¬(A^B)) A⇒B, B⇒A, ¬A⇒¬B, ¬B⇒¬A | copypasta/graph.go:3880 |
|||
| 2600 | CF1981E | 完全图找个最小的 a[i] 和其余点连边 | copypasta/graph.go:2340 |
|||
| 2600 | CF2236G | O(n) | 树上滑动窗口 | 有 | copypasta/graph_tree.go:1166 |
|
| 2700 | CF293E | 或者说,每个点至多被 O(log n) 个在重心拐弯的路径覆盖 | 两个距离约束 | copypasta/graph_tree.go:776 |
||
| 2700 | CF715C | 树上启发式合并 DSU on tree / small to large | copypasta/graph_tree.go:2107 |
|||
| 2700 | CF827D | 完全图找个最小的 a[i] 和其余点连边 | 对于图中每条边,边权至多是多少,能让这条边仍然在所有 MST 中 | 有 | copypasta/graph.go:2341 |
|
| 2700 | CF827D | O(n) | checking-existence-of-edge-length-limited-paths checking-existence-of-edge-length-limited-paths-ii |
有 | copypasta/graph_tree.go:1183 |
|
| 2700 | CF827D | EXTRA: 倍增的时候维护其他属性,如边权最值等 | 有 | copypasta/graph_tree.go:1368 |
||
| 2700 | CF839E | 注:求最大独立集等价于求补图的最大团 maximal cliques (MC) | 基本不等式 | 有 | copypasta/graph.go:4432 |
|
| 2700 | CF1270G | 更简单的做法是倍增 | 构造 建图 | 有 | copypasta/graph.go:3977 |
|
| 2700 | CF1515G | 强连通分量分解 Strongly Connected Component (SCC) | 有 | copypasta/graph.go:3647 |
||
| 2700 | CF1519E | DFS | 无向图后向边定向 | copypasta/graph.go:172 |
||
| 2700 | CF1617E | 反例: | 转换成求部分直径 | 有 | copypasta/graph_tree.go:533 |
|
| 2800 | CF79D | BFS | 有 | copypasta/graph.go:431 |
||
| 2800 | CF163E | 另见后面的 inOutTimestamp | AC 自动机 | 有 | copypasta/graph_tree.go:312 |
|
| 2800 | CF516D | 反例: | copypasta/graph_tree.go:535 |
|||
| 2800 | CF600F | 注:二分图也叫偶图 | 【边染色】 | copypasta/graph.go:3127 |
||
| 2800 | CF613D | 但这样做还要再排序,并使用几个额外的数组,所以相比之下直接 DFS 更好 | 入门题 | 有 | copypasta/graph_tree.go:1669 |
|
| 2800 | CF776F | 或者说,每个点至多被 O(log n) 个在重心拐弯的路径覆盖 | copypasta/graph_tree.go:777 |
|||
| 2800 | CF842E | 反例: | 动态加点求直径端点个数 | 有 | copypasta/graph_tree.go:536 |
|
| 2800 | CF842E | O(n) | 动态加点求直径端点个数 | 有 | copypasta/graph_tree.go:1167 |
|
| 2800 | CF986E | O(n) | 有 | copypasta/graph_tree.go:1168 |
||
| 2800 | CF1375G | 黑白染色 | 有 | copypasta/graph_tree.go:42 |
||
| 2800 | CF1827D | 另见后面的 inOutTimestamp | 重心性质 | 有 | copypasta/graph_tree.go:313 |
|
| 2800 | CF1827D | 把两棵树通过一条边相连得到一棵新的树,新重心在旧重心的路径上 | 有 | copypasta/graph_tree.go:705 |
||
| 2800 | CF1827D | 树的重心是点分治中的一个划分步骤 | 有 | copypasta/graph_tree.go:726 |
||
| 2900 | CF19E | a(n) = C(n, 2)-n/2+1 n%2==1 | 有 | copypasta/graph.go:61 |
||
| 2900 | CF741D | 树上启发式合并 DSU on tree / small to large | copypasta/graph_tree.go:2108 |
|||
| 2900 | CF802O | 如果满流,则表示恰好选了 lim 个元素 | 模拟费用流/反悔贪心 | copypasta/graph_flow.go:763 |
||
| 2900 | CF1062F | 拓扑序是否唯一:任意时刻队列中不能有超过一个元素 | 关键点 次关键点 | 有 | copypasta/graph.go:3574 |
|
| 2900 | CF1455G | 树上启发式合并 DSU on tree / small to large | copypasta/graph_tree.go:2109 |
|||
| 3000 | CF235D | 更简单的做法是倍增 | 期望 | copypasta/graph.go:3978 |
||
| 3000 | CF504E | 也可以转换成子树所有点的 dis 都增加了 delta,用欧拉序+差分树状数组维护 | copypasta/graph_tree.go:1832 |
|||
| 3000 | CF1149D | 完全图找个最小的 a[i] 和其余点连边 | 只有两种边权的图的 MST 的性质 + 所有 MST 中的单源最短路的最小值 | copypasta/graph.go:2342 |
||
| 3000 | CF1163F | st 也可以是一个点集,这相当于同时对多个点跑最短路 | todo 动态最短路 | copypasta/graph.go:1549 |
||
| 3000 | CF1320E | 但这样做还要再排序,并使用几个额外的数组,所以相比之下直接 DFS 更好 | 换根 DP | 有 | copypasta/graph_tree.go:1670 |
|
| 3000 | CF1763F | 注意:只有两个点的点双也要建方点 | copypasta/graph.go:1331 |
|||
| 3100 | CF176E | 另见后面的 inOutTimestamp | 有 | copypasta/graph_tree.go:314 |
||
| 3100 | CF176E | O(n) | 有 | copypasta/graph_tree.go:1169 |
||
| 3200 | CF487E | 注意:只有两个点的点双也要建方点 | copypasta/graph.go:1332 |
|||
| 3200 | CF1666K | 对于左部,不割表示选,割表示不选,要反过来思考 | copypasta/graph_flow.go:62 |
|||
| 3300 | CF704E | 也可以转换成子树所有点的 dis 都增加了 delta,用欧拉序+差分树状数组维护 | copypasta/graph_tree.go:1833 |
|||
| CF25D | vis[v] == 2:该顶点已经被访问,其子树已遍历完 | find-eventual-safe-states | 有 | copypasta/graph.go:297 |
||
| CF117C | 拓扑序上,不同 SCC 的点的入度,越靠前的严格越小 | copypasta/graph.go:81 |
||||
| CF118E | 桥(割边) | critical-connections-in-a-network | 有 | copypasta/graph.go:969 |
||
| CF125E | 点 root 的度数不超过 lim | copypasta/graph.go:2525 |
||||
| CF154C | a(n) = C(n, 2)-n/2+1 n%2==1 | copypasta/graph.go:69 |
||||
| CF156D | 普吕弗序列(Prufer 序列,Prüfer sequence) | 有 | copypasta/graph_tree.go:2356 |
|||
| CF160D | 桥(割边) | critical-connections-in-a-network | 有 | copypasta/graph.go:967 |
||
| CF191C | 边权时 diff[lca] -= 2 * val(定义 diff 为点到父亲的差分值) | minimize-the-total-price-of-the-trips | 有 | copypasta/graph_tree.go:1617 |
||
| CF231E | 如果每个点至多在一个环中,则为仙人掌图 | 仙人掌图 | copypasta/graph.go:1240 |
|||
| CF240E | todo 另外还有 Tarjan 的 O(m+nlogn) 算法 | copypasta/graph.go:2957 |
||||
| CF260D | 对于无向树,BFS 序的逆序就是拓扑序 | 有 | copypasta/graph_tree.go:54 |
|||
| CF263D | 注:如果只有一个环(基环树),见 pseudotree | 有 | copypasta/graph.go:356 |
|||
| CF342E | 与换根 DP 结合: | 有 | copypasta/graph_tree.go:128 |
|||
| CF342E | 优点是查询的复杂度低,适用于查询量大的情形 | 有 | copypasta/graph_tree.go:1452 |
|||
| CF362E | 费用流·建模·转换 | copypasta/graph_flow.go:245 |
||||
| CF375D | 根节点到树上任意节点的轻边数不超过 O(logn) 条 | 有 | copypasta/graph_tree.go:2190 |
|||
| CF375D | 不用 map,而是像莫队那样添加和撤销,这样只需要数组,常数更小 | 有 | copypasta/graph_tree.go:2242 |
|||
| CF427C | 强连通分量分解 Strongly Connected Component (SCC) | 有 | copypasta/graph.go:3641 |
|||
| CF487E | 每个点双的点数就是一个极大环的点数 | s5kipK | copypasta/graph.go:1033 |
|||
| CF487E | TODO: 处理边权的情况 | copypasta/graph_tree.go:1843 |
||||
| CF507E | EXTRA: 从 st 到 end 的任意一条路径 | 有 | copypasta/graph.go:1609 |
|||
| CF550D | 桥(割边) | copypasta/graph.go:971 |
||||
| CF567E | 桥(割边) | critical-connections-in-a-network | 有 | copypasta/graph.go:968 |
||
| CF570D | 重链剖分(见 tree.heavyLightDecomposition) | 有 | copypasta/graph_tree.go:263 |
|||
| CF592D | 找出直径 dv-dw 后,对两个端点各自跑一次 DFS,即可找出全部直径端点 | 有 | copypasta/graph_tree.go:563 |
|||
| CF618D | _, _ = isAncestor, isAncestor2 | 有 | copypasta/graph_tree.go:476 |
|||
| CF632F | 有些题目需要在连通分量上求 MST,这时就需要用到 root | min-cost-to-connect-all-points | copypasta/graph.go:2398 |
|||
| CF698B | vis[v] == 2:该顶点已经被访问,其子树已遍历完 | find-eventual-safe-states | 有 | copypasta/graph.go:298 |
||
| CF700B | NOTE: 注意特判整棵树只有一条边的情况,此时两个叶结点对应同一条边 | 有 | copypasta/graph_tree.go:22 |
|||
| CF723F | a(n) = C(n, 2)-n/2+1 n%2==1 | 有 | copypasta/graph.go:63 |
|||
| CF732F | 如果每个点至多在一个环中,则为仙人掌图 | 有 | copypasta/graph.go:1241 |
|||
| CF763D | 与换根 DP 结合: | copypasta/graph_tree.go:124 |
||||
| CF765E | 对于无向树,BFS 序的逆序就是拓扑序 | 有 | copypasta/graph_tree.go:55 |
|||
| CF766E | 对于无向树,BFS 序的逆序就是拓扑序 | 有 | copypasta/graph_tree.go:53 |
|||
| CF808F | 对于最大点权独立集,其等价于点权之和减去最小点权覆盖集。 | 有 | copypasta/graph_flow.go:227 |
|||
| CF888G | 见 trie01.go 中的 xorMST | 有 | copypasta/graph.go:2519 |
|||
| CF894E | 注意这样可能会产生重边,不能有重边时可以用 map 或对每个点排序去重 | copypasta/graph.go:3731 |
||||
| CF901C | 1 表示不在环上 | 有 | copypasta/graph.go:4584 |
|||
| CF915F | 建图 | 有 | copypasta/graph.go:31 |
|||
| CF932D | 如果求【至少】d 距离的目标节点,可以改成往上跳至多 d-1,然后再往上跳一个节点 | find-weighted-median-node-in-tree | copypasta/graph_tree.go:1260 |
|||
| CF936B | 奇偶标记法 | 有 | copypasta/graph.go:257 |
|||
| CF936B | vis[v] == 2:该顶点已经被访问,其子树已遍历完 | find-eventual-safe-states | 有 | copypasta/graph.go:299 |
||
| CF959E | 有些题目需要在连通分量上求 MST,这时就需要用到 root | min-cost-to-connect-all-points | copypasta/graph.go:2399 |
|||
| CF962F | 每个点双的点数就是一个极大环的点数 | 有 | copypasta/graph.go:1031 |
|||
| CF986F | a[i] >= 0 | 有 | copypasta/graph.go:2192 |
|||
| CF1000E | 桥(割边) | critical-connections-in-a-network | 有 | copypasta/graph.go:964 |
||
| CF1000E | 如果每个点至多在一个环中,则为仙人掌图 | 有 | copypasta/graph.go:1239 |
|||
| CF1009F | 这样带来的好处是在合并之后,我们可以将当前节点的信息直接添加在 DP 数组末尾 | 有 | copypasta/graph_tree.go:2058 |
|||
| CF1198C | a(n) = C(n, 2)-n/2+1 n%2==1 | 匹配与独立集 | 有 | copypasta/graph.go:52 |
||
| CF1198C | 因此有:最大独立集=n-最大匹配 | 有 | copypasta/graph.go:3215 |
|||
| CF1217D | vis[v] == 2:该顶点已经被访问,其子树已遍历完 | 给一个有向图着色,使得没有一个环只有一个颜色,求使用的颜色数量的最小值 | find-eventual-safe-states | 有 | copypasta/graph.go:300 |
|
| CF1218D | 1 表示不在环上 | 有 | copypasta/graph.go:4585 |
|||
| CF1239D | 强连通分量分解 Strongly Connected Component (SCC) | 有 | copypasta/graph.go:3643 |
|||
| CF1325E | BFS 应用:求无向无权图最小环长度 | 有 | copypasta/graph.go:668 |
|||
| CF1325F | 注:如果只有一个环(基环树),见 pseudotree | 有 | copypasta/graph.go:357 |
|||
| CF1325F | Topic - DFS 树 | 有 | copypasta/graph.go:905 |
|||
| CF1364D | a(n) = C(n, 2)-n/2+1 n%2==1 | 环与独立集 | copypasta/graph.go:51 |
|||
| CF1385E | 2 不在队列,已访问 | 有 | copypasta/graph.go:533 |
|||
| CF1401D | 重链剖分(见 tree.heavyLightDecomposition) | 有 | copypasta/graph_tree.go:261 |
|||
| CF1404E | 正则就是所有点的度数都一样 | copypasta/graph.go:3256 |
||||
| CF1439B | 寻找一个子图,要么其是一个 k-团,要么其每个顶点都至少有 k 个邻居(度不小于 k) | 有 | copypasta/graph.go:4317 |
|||
| CF1455E | 《算法导论》思考题 29-5 | 有 | copypasta/graph_flow.go:285 |
|||
| CF1468M | 四元环计数/判定 O(m√m) | 有 | copypasta/graph.go:4528 |
|||
| CF1470D | 最大独立集见后面的「最大团」 | 有 | copypasta/graph.go:3205 |
|||
| CF1498E | 拓扑序上,不同 SCC 的点的入度,越靠前的严格越小 | 有 | copypasta/graph.go:79 |
|||
| CF1508C | 有些题目需要在连通分量上求 MST,这时就需要用到 root | min-cost-to-connect-all-points | 有 | copypasta/graph.go:2397 |
||
| CF1514E | 拓扑序上,不同 SCC 的点的入度,越靠前的严格越小 | 有 | copypasta/graph.go:80 |
|||
| CF1520G | 其它 | 有 | copypasta/graph_grid.go:57 |
|||
| CF1528D | 适用于稠密图 O(n^2) | minimum-cost-of-a-path-with-special-roads | 有 | copypasta/graph.go:1775 |
||
| CF1547G | 注意这样可能会产生重边,不能有重边时可以用 map 或对每个点排序去重 | 有 | copypasta/graph.go:3732 |
|||
| CF1550F | 见 trie01.go 中的 xorMST | https://www.luogu.com.cn/blog/ETHANK/boruvka-xiao-ji | copypasta/graph.go:2520 |
|||
| CF1630F | 二分图最大匹配 Hopcroft–Karp 算法 O(m√n) | copypasta/graph.go:3337 |
||||
| CF1650G | EXTRA: 次短路·其一 | http://poj.org/problem?id=3463 https://www.acwing.com/problem/content/385/ | second-minimum-time-to-reach-destination | 有 | copypasta/graph.go:1706 |
|
| CF1689E | 定义连通性 | 有 | copypasta/graph.go:84 |
|||
| CF1707C | 边权时 diff[lca] -= 2 * val(定义 diff 为点到父亲的差分值) | minimize-the-total-price-of-the-trips | 有 | copypasta/graph_tree.go:1619 |
||
| CF1709E | 写法一:按 map 的大小合并 | 有 | copypasta/graph_tree.go:2120 |
|||
| CF1770D | 无向图分类:无环/自环/一般环 | 有 | copypasta/graph.go:329 |
|||
| CF1771D | 定义 v 到 v 走一步的节点为 v | 有 | copypasta/graph_tree.go:183 |
|||
| CF1774E | 对于无向树,BFS 序的逆序就是拓扑序 | 有 | copypasta/graph_tree.go:52 |
|||
| CF1774E | 树上移动 move on tree | 有 | copypasta/graph_tree.go:68 |
|||
| CF1777E | EXTRA: 求有多少个点能被其他所有点访问到 | 有 | copypasta/graph.go:3749 |
|||
| CF1778E | NOTE: 注意特判整棵树只有一条边的情况,此时两个叶结点对应同一条边 | 有 | copypasta/graph_tree.go:24 |
|||
| CF1790F | NOTE: 注意特判整棵树只有一条边的情况,此时两个叶结点对应同一条边 | 有 | copypasta/graph_tree.go:25 |
|||
| CF1800G | O(nlogn) | 有 | copypasta/graph_tree.go:86 |
|||
| CF1806E | NOTE: 注意特判整棵树只有一条边的情况,此时两个叶结点对应同一条边 | 有 | copypasta/graph_tree.go:23 |
|||
| CF1817B | 其它找环题目 | 有 | copypasta/graph.go:388 |
|||
| CF1819C | path[len(path)/2] 即为树的中心(之一) | 有 | copypasta/graph_tree.go:617 |
|||
| CF1839E | a(n) = C(n, 2)-n/2+1 n%2==1 | 有 | copypasta/graph.go:64 |
|||
| CF1839E | 注:二分图也叫偶图 | 有 | copypasta/graph.go:3112 |
|||
| CF1900E | 强连通分量分解 Strongly Connected Component (SCC) | 有 | copypasta/graph.go:3640 |
|||
| CF1927F | 例如 cycle=[1,2,3] 表示一个 1->2->3->1 的环 | 先用 tarjan 去掉所有割边 | 有 | copypasta/graph.go:234 |
||
| CF1927F | 桥(割边) | critical-connections-in-a-network | 有 | copypasta/graph.go:965 |
||
| CF1971H | 注:如果原命题及其逆否命题成对出现,那么只需要对原命题连边 | 有 | copypasta/graph.go:3896 |
|||
| CF1971H | 令 a=1,即 addEdge(x,0,x,1),表示 x 恒为真 | addClause(abs(a),a>0,abs(b),b>0) | 有 | copypasta/graph.go:3915 |
||
| CF1985H1 | 网格图 DFS | pacific-atlantic-water-flow making-a-large-island |
有 | copypasta/graph_grid.go:21 |
||
| CF1985H2 | 网格图 DFS | pacific-atlantic-water-flow making-a-large-island |
有 | copypasta/graph_grid.go:22 |
||
| CF1986F | 桥(割边) | 可以在算割边的同时计算子树大小 | 有 | copypasta/graph.go:970 |
||
| CFEDU-E | 边权 [0,1] 的随机完全图的 MST 权值和是 ζ(3) = 1.202… | Codeforces EDU | copypasta/graph.go:2319 |
|||
| CFEDU-F | edges 中的节点编号从 0 开始,且无自环 | Codeforces EDU | copypasta/graph.go:2887 |
|||
| CF103960L | 但这样做还要再排序,并使用几个额外的数组,所以相比之下直接 DFS 更好 | 进阶:对每条边分别计算 | copypasta/graph_tree.go:1673 |
|||
| CF104270B | 如果每个点至多在一个环中,则为仙人掌图 | DSU | copypasta/graph.go:1242 |
|||
| CF104270B | 树上启发式合并 DSU on tree / small to large | 点双 | copypasta/graph_tree.go:2110 |
|||
| CF104821E | 平面图最小割转最短路 | copypasta/graph.go:40 |
||||
| CF105139L | EXTRA: 打印负环 | 利用最短路简化分类讨论 | minimum-cost-to-convert-string-ii | copypasta/graph.go:1961 |
数学
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1000 | CF1916B | 因子相关问题 | 有 | copypasta/math.go:1531 |
||
| 1000 | CF2002B | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | 如何严谨证明 | 有 | copypasta/games.go:30 |
|
| 1000 | CF2040B | 位运算相关 | 有 | copypasta/math.go:32 |
||
| 1100 | CF841B | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | 有 | copypasta/games.go:31 |
||
| 1100 | CF2043B | 数位 | harshad-number | copypasta/math_basic.go:8 |
||
| 1100 | CF2125C | 《挑战程序设计竞赛》P296 | 有 | copypasta/math_comb.go:427 |
||
| 1128 | CF27E | a(p) = 2^(p-1) for primes p | https://www.luogu.com.cn/problem/P | 有 | copypasta/math.go:1485 |
|
| 1200 | CF1736B | 基础题 | 有 | copypasta/math.go:439 |
||
| 1200 | CF2119B | 其他 | 有 | copypasta/geometry.go:139 |
||
| 1300 | CF450B | 矩阵快速幂优化 DP | 也可以找规律 | student-attendance-record-ii | copypasta/math_matrix.go:37 |
|
| 1300 | CF617B | 排列组合问题 | copypasta/math_comb.go:31 |
|||
| 1300 | CF1372B | dfs(0, 1, tarD, math.MaxInt) | 有 | copypasta/math.go:1614 |
||
| 1300 | CF1612C | 可以用以下题目测试: | 有 | copypasta/geometry.go:177 |
||
| 1300 | CF1612C | ceilSqrt 返回 ceil(sqrt(x)) | 有 | copypasta/geometry.go:189 |
||
| 1300 | CF1862D | 可以用以下题目测试: | 有 | copypasta/geometry.go:178 |
||
| 1300 | CF1879C | 排列组合问题 | 有 | copypasta/math_comb.go:34 |
||
| 1300 | CF1881D | 质因数分解(质数及其幂次)prime factorization | smallest-value-after-replacing-with-sum-of-prime-factors split-the-array-to-make-coprime-products |
有 | copypasta/math.go:1326 |
|
| 1300 | CF2091E | pf[j] = append(pf[j], i) | copypasta/math.go:2216 |
|||
| 1300 | CF2124C | LCM | 有 | copypasta/math.go:491 |
||
| 1400 | CF131C | 排列组合问题 | copypasta/math_comb.go:35 |
|||
| 1400 | CF284A | 原根 | copypasta/math.go:2469 |
|||
| 1400 | CF485A | 数位 | harshad-number | 有 | copypasta/math_basic.go:9 |
|
| 1400 | CF757B | 调和级数枚举(枚举倍数) | 有 | copypasta/math.go:128 |
||
| 1400 | CF1263C | ∑k%i 见下面的 floorLoopK | 模板题 | 有 | copypasta/math.go:3867 |
|
| 1400 | CF1759D | 数位 | harshad-number | 有 | copypasta/math_basic.go:10 |
|
| 1400 | CF1965A | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | vowels-game-in-a-string | 有 | copypasta/games.go:33 |
|
| 1400 | CF1967B1 | 整除与 GCD | 有 | copypasta/math.go:447 |
||
| 1400 | CF2104D | 该算法也说明了:前 n 个数的平均质因子数量是 O(loglogn) 级别的 | 有 | copypasta/math.go:1128 |
||
| 1400 | CF2126E | 基础题 | copypasta/math.go:440 |
|||
| 1400 | CF2126E | 整除与 GCD | 证明题 | copypasta/math.go:448 |
||
| 1500 | CF166E | 矩阵快速幂优化 DP | student-attendance-record-ii | 有 | copypasta/math_matrix.go:38 |
|
| 1500 | CF264B | GCD 套路:枚举倍数(调和级数复杂度) | GCD 与质因子 | 有 | copypasta/math.go:471 |
|
| 1500 | CF576A | 该算法也说明了:前 n 个数的平均质因子数量是 O(loglogn) 级别的 | 有 | copypasta/math.go:1129 |
||
| 1500 | CF630K | 《挑战程序设计竞赛》P296 | 有 | copypasta/math_comb.go:428 |
||
| 1500 | CF677C | 排列组合问题 | copypasta/math_comb.go:36 |
|||
| 1500 | CF908C | 圆与圆 | copypasta/geometry.go:641 |
|||
| 1500 | CF1110C | GCD 套路:枚举倍数(调和级数复杂度) | GCD(x,x+y) = GCD(x,y) | 有 | copypasta/math.go:472 |
|
| 1500 | CF1236B | 排列组合问题 | 有 | copypasta/math_comb.go:37 |
||
| 1500 | CF1391C | 排列组合问题 | 有 | copypasta/math_comb.go:38 |
||
| 1500 | CF1996D | 调和级数枚举(枚举倍数) | 有 | copypasta/math.go:129 |
||
| 1500 | CF1999F | 排列组合问题 | 有 | copypasta/math_comb.go:39 |
||
| 1500 | CF2200E | a(n) ~ n^2/(2 log n) | gcd-sort-of-an-array count-ways-to-make-array-with-product |
有 | copypasta/math.go:1878 |
|
| 1600 | CF197A | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | vowels-game-in-a-string | 有 | copypasta/games.go:36 |
|
| 1600 | CF678C | LCM | 有 | copypasta/math.go:492 |
||
| 1600 | CF678C | 《挑战程序设计竞赛》P296 | 有 | copypasta/math_comb.go:429 |
||
| 1600 | CF1033C | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | 三定理的模板题 | vowels-game-in-a-string | 有 | copypasta/games.go:37 |
| 1600 | CF1288C | 排列组合问题 | 有 | copypasta/math_comb.go:40 |
||
| 1600 | CF1458A | GCD(x,y) = GCD(x,y-x) x<=y | 有 | copypasta/math.go:453 |
||
| 1600 | CF1475E | 排列组合问题 | copypasta/math_comb.go:41 |
|||
| 1600 | CF1514C | 原根 | 有 | copypasta/math.go:2466 |
||
| 1600 | CF1766D | GCD(x,y) = GCD(x,y-x) x<=y | 有 | copypasta/math.go:454 |
||
| 1600 | CF1766D | a(n) ~ n^2/(2 log n) | gcd-sort-of-an-array count-ways-to-make-array-with-product |
有 | copypasta/math.go:1879 |
|
| 1600 | CF1771C | 预处理 sqrt(mx) 以内的质数 | 有 | copypasta/math.go:1148 |
||
| 1600 | CF1883E | p<<x ≤ q => TODO 分类讨论 | 有 | copypasta/math.go:41 |
||
| 1600 | CF1920C | 基础题 | 有 | copypasta/math.go:441 |
||
| 1600 | CF2040C | 排列组合问题 | 有 | copypasta/math_comb.go:43 |
||
| 1700 | CF385C | a(n) ~ n^2/(2 log n) | gcd-sort-of-an-array count-ways-to-make-array-with-product |
有 | copypasta/math.go:1880 |
|
| 1700 | CF449A | ∑k%i 见下面的 floorLoopK | copypasta/math.go:3868 |
|||
| 1700 | CF498A | NOTE: 若输入均为有理数,则输出也为有理数,对精度要求较高时可使用分数类 | 直线与线段 也可以判断线段端点是否在直线两侧 | 有 | copypasta/geometry.go:519 |
|
| 1700 | CF938C | ∑k%i 见下面的 floorLoopK | 有 | copypasta/math.go:3869 |
||
| 1700 | CF1073D | 取模减半 | 有 | copypasta/math_basic.go:17 |
||
| 1700 | CF1194D | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | 1-2-K Game 我的题解 https://www.acwing.com/file_system/file/content/whole/index/content/3179098/ | vowels-game-in-a-string | 有 | copypasta/games.go:38 |
| 1700 | CF1228C | 质因数分解(质数及其幂次)prime factorization | smallest-value-after-replacing-with-sum-of-prime-factors split-the-array-to-make-coprime-products |
有 | copypasta/math.go:1327 |
|
| 1700 | CF1301C | 没有思路的话可以尝试: | 有 | copypasta/math_comb.go:25 |
||
| 1700 | CF1485C | ∑k%i 见下面的 floorLoopK | copypasta/math.go:3870 |
|||
| 1700 | CF1485C | ∑x/i, i in [low,up] | copypasta/math.go:3913 |
|||
| 1700 | CF1777C | 复杂度 O(NlogN) | 有 | copypasta/math.go:1707 |
||
| 1700 | CF1950F | 数位 | harshad-number | 有 | copypasta/math_basic.go:11 |
|
| 1700 | CF1982D | 裴蜀定理 Bézout’s identity | 有 | copypasta/math.go:507 |
||
| 1700 | CF2086D | 排列组合问题 | 可重集排列 | 有 | copypasta/math_comb.go:47 |
|
| 1700 | CF2086D | 可重集排列组合 | 有 | copypasta/math_comb.go:163 |
||
| 1800 | CF300C | 排列组合问题 | 有 | copypasta/math_comb.go:48 |
||
| 1800 | CF869C | 排列组合问题 | 有 | copypasta/math_comb.go:49 |
||
| 1800 | CF1034A | 因子与 GCD | 有 | copypasta/math.go:444 |
||
| 1800 | CF1295D | GCD(x,y) = GCD(x,y-x) x<=y | 有 | copypasta/math.go:455 |
||
| 1800 | CF1648B | 调和级数枚举(枚举倍数) | 有 | copypasta/math.go:130 |
||
| 1800 | CF1728D | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | 字符串两端取字母,字典序小的胜 | 有 | copypasta/games.go:39 |
|
| 1800 | CF1750D | 《挑战程序设计竞赛》P296 | 有 | copypasta/math_comb.go:430 |
||
| 1800 | CF1995C | 不断平方变成递增 | 有 | copypasta/math.go:46 |
||
| 1800 | CF2008G | GCD(x,y) = GCD(x,y-x) x<=y | copypasta/math.go:456 |
|||
| 1800 | CF2033F | a(n) = (F(n)F(n+4)-3F(n)*F(n+1))/2 | 有 | copypasta/math.go:4136 |
||
| 1800 | CF2035D | a < b<<k => a>>k < b | 有 | copypasta/math.go:38 |
||
| 1900 | CF109C | 排列组合问题 | 也可以换根 DP | 有 | copypasta/math_comb.go:50 |
|
| 1900 | CF134B | 如果 x = y,无解 | 有 | copypasta/math.go:465 |
||
| 1900 | CF213B | 排列组合问题 | 有 | copypasta/math_comb.go:51 |
||
| 1900 | CF222E | 矩阵快速幂优化 DP | student-attendance-record-ii | 有 | copypasta/math_matrix.go:39 |
|
| 1900 | CF691E | 矩阵快速幂优化 DP | 有 | copypasta/math_matrix.go:40 |
||
| 1900 | CF731F | 调和级数枚举(枚举倍数) | 有 | copypasta/math.go:131 |
||
| 1900 | CF1175D | Abel 求和公式 / 离散分部积分公式 / 分部求和法 / Abel 变换 | 有 | copypasta/math.go:112 |
||
| 1900 | CF1470B | 时间复杂度 O(mx),因为每个数都会被它的 core 恰好标记一次(类似欧拉筛) | 有 | copypasta/math.go:1823 |
||
| 1900 | CF1689D | 顺时针旋转 45° (x,y) -> (x+y,y-x) 记作 (x’,y’) | minimize-manhattan-distances | 有 | copypasta/geometry.go:110 |
|
| 1900 | CF1878F | 质因数分解(质数及其幂次)prime factorization | smallest-value-after-replacing-with-sum-of-prime-factors split-the-array-to-make-coprime-products |
有 | copypasta/math.go:1328 |
|
| 1900 | CF1878F | = 见后文「数论分块/除法分块」 | 有 | copypasta/math.go:1479 |
||
| 1900 | CF1992F | 因子相关问题 | 有 | copypasta/math.go:1532 |
||
| 1900 | CF2094H | 复杂度 O(NlogN) | 有 | copypasta/math.go:1708 |
||
| 2000 | CF15C | 那么 a[i]^xorSum 必然比 a[i] 小,所以这个减少操作是存在的。 | 有 | copypasta/games.go:156 |
||
| 2000 | CF78C | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | 分类讨论 | 有 | copypasta/games.go:40 |
|
| 2000 | CF501D | 3. 解码得到排列 | copypasta/math.go:3361 |
|||
| 2000 | CF615D | 否则,ei+1 中必有偶数,将其除二 | 有 | copypasta/math.go:1518 |
||
| 2000 | CF615D | a^b ≡ a^(b mod φ(m)) (mod m), gcd(a,m)=1 | 例题 | 有 | copypasta/math.go:2432 |
|
| 2000 | CF621E | 矩阵快速幂优化 DP | 有 | copypasta/math_matrix.go:41 |
||
| 2000 | CF803F | O(n + UlogU), U=max(a) | 子序列 EDU20 | sorted-gcd-pair-queries | 有 | copypasta/math.go:607 |
| 2000 | CF803F | todo 重新做一遍 | https://ac.nowcoder.com/acm/problem/112055 | 有 | copypasta/math.go:3841 |
|
| 2000 | CF895C | 只保留奇数次数质因子的写法 | 有 | copypasta/math.go:869 |
||
| 2000 | CF900D | todo 重新做一遍 | 有 | copypasta/math.go:3840 |
||
| 2000 | CF900D | 《挑战程序设计竞赛》P296 | 因子容斥 | 有 | copypasta/math_comb.go:431 |
|
| 2000 | CF1359E | 排列组合问题 | 有 | copypasta/math_comb.go:53 |
||
| 2000 | CF1366D | 构造 | 有 | copypasta/math.go:480 |
||
| 2000 | CF1900D | 题目: | 有 | copypasta/math.go:3813 |
||
| 2000 | CF1931G | 排列组合问题 | 放球问题 构造 | 有 | copypasta/math_comb.go:54 |
|
| 2000 | CF1931G | 变形:允许空盒 | 有 | copypasta/math_comb.go:110 |
||
| 2000 | CF2037G | 调和级数枚举写法 | 因子容斥 | 有 | copypasta/math.go:3723 |
|
| 2000 | CF2037G | 《挑战程序设计竞赛》P296 | 因子容斥 | 有 | copypasta/math_comb.go:432 |
|
| 2000 | CF2114F | 枚举一个数的全部因子 | 有 | copypasta/math.go:1617 |
||
| 2000 | CF2171G | 排列组合问题 | 有 | copypasta/math_comb.go:55 |
||
| 2100 | CF1C | 浮点数 GCD | 有 | copypasta/geometry.go:257 |
||
| 2100 | CF821E | 矩阵快速幂优化 DP | 分段 | 有 | copypasta/math_matrix.go:42 |
|
| 2100 | CF936B | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | 一道不错的有向图博弈 | 有 | copypasta/games.go:41 |
|
| 2100 | CF954F | 矩阵快速幂优化 DP | 3xM 的格子,其中有一些障碍物,求从第二行最左走到第二行最右的方案数,每次可以向右/右上/右下走一步 | 有 | copypasta/math_matrix.go:43 |
|
| 2100 | CF1117D | 矩阵快速幂优化 DP | f(n) = f(n-1) + f(n-m) | 有 | copypasta/math_matrix.go:44 |
|
| 2100 | CF1117D | 另见 math_ntt.go 的 Bostan-Mori 算法 | 有 | copypasta/math_matrix.go:303 |
||
| 2100 | CF1761D | 排列组合问题 | copypasta/math_comb.go:56 |
|||
| 2100 | CF2123G | 复杂度 O(NlogN) | 有 | copypasta/math.go:1709 |
||
| 2200 | CF514E | 矩阵快速幂优化 DP | 常数项 | 有 | copypasta/math_matrix.go:45 |
|
| 2200 | CF514E | 结果是列向量 [f[n], f[n-1]],取第一项 | 有 | copypasta/math_matrix.go:202 |
||
| 2200 | CF520E | 排列组合问题 | 有 | copypasta/math_comb.go:59 |
||
| 2200 | CF559C | 排列组合问题 | 有 | copypasta/math_comb.go:60 |
||
| 2200 | CF616E | ∑k%i 见下面的 floorLoopK | 有 | copypasta/math.go:3871 |
||
| 2200 | CF616E | = n*k-∑(k/i)*i | 有 | copypasta/math.go:3933 |
||
| 2200 | CF1154G | GCD 套路:枚举倍数(调和级数复杂度) | 数组中最小的 LCM(ai,aj) | 有 | copypasta/math.go:473 |
|
| 2200 | CF1155E | 时间复杂度 O(n^2) | 交互 找零点 | 有 | copypasta/math_numerical_analysis.go:58 |
|
| 2200 | CF1559E | todo 重新做一遍 | copypasta/math.go:3842 |
|||
| 2200 | CF1646E | 该算法也说明了:前 n 个数的平均质因子数量是 O(loglogn) 级别的 | copypasta/math.go:1130 |
|||
| 2200 | CF1646E | todo 更高效的算法 - Pollard’s Rho | copypasta/math.go:1294 |
|||
| 2200 | CF1763D | 排列组合问题 | 推荐 分类讨论 | 有 | copypasta/math_comb.go:61 |
|
| 2200 | CF1822G2 | 求 x 的所有平方因子的平方根 | 有 | copypasta/math.go:2013 |
||
| 2200 | CF1946E | 排列组合问题 | 排列 | copypasta/math_comb.go:62 |
||
| 2200 | CF1967B2 | 整除与 GCD | 有 | copypasta/math.go:449 |
||
| 2200 | CF1970E3 | 矩阵快速幂优化 DP | 有 | copypasta/math_matrix.go:46 |
||
| 2200 | CF2060F | 变形:允许空盒 | copypasta/math_comb.go:111 |
|||
| 2300 | CF451E | 适用于 n 巨大但 k 或 n-k 较小的情况(或者只计算一次组合数,O(1) 空间) | 有 | copypasta/math.go:3236 |
||
| 2300 | CF451E | 《挑战程序设计竞赛》P296 | 例题 | 有 | copypasta/math_comb.go:433 |
|
| 2300 | CF547C | todo 重新做一遍 | 有 | copypasta/math.go:3843 |
||
| 2300 | CF785D | ∑i=[0..k] C(n,i)*C(m,k-i) = C(n+m,k) | 有 | copypasta/math_comb.go:133 |
||
| 2300 | CF812E | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | 阶梯博弈 | 有 | copypasta/games.go:42 |
|
| 2300 | CF845G | 可以用来解决「子序列异或和」相关问题 | 异或最短路/最长路 | copypasta/math_matrix.go:649 |
||
| 2300 | CF1101G | 可以用来解决「子序列异或和」相关问题 | 有 | copypasta/math_matrix.go:651 |
||
| 2300 | CF1182E | 矩阵快速幂优化 DP | 关注指数 | 有 | copypasta/math_matrix.go:47 |
|
| 2300 | CF1204E | 排列组合问题 | 推荐 | 有 | copypasta/math_comb.go:63 |
|
| 2300 | CF1228E | 《挑战程序设计竞赛》P296 | 如何将问题转化成可以容斥的结构 | distribute-candies-among-children-ii | 有 | copypasta/math_comb.go:435 |
| 2300 | CF1342E | 排列组合问题 | 有 | copypasta/math_comb.go:64 |
||
| 2300 | CF1342E | 《挑战程序设计竞赛》P296 | distribute-candies-among-children-ii | 有 | copypasta/math_comb.go:436 |
|
| 2300 | CF1550D | 排列组合问题 | 构造 | 有 | copypasta/math_comb.go:65 |
|
| 2300 | CF1603C | ∑k%i 见下面的 floorLoopK | 数论分块优化 DP | copypasta/math.go:3872 |
||
| 2300 | CF1780F | todo 重新做一遍 | copypasta/math.go:3844 |
|||
| 2300 | CF1797E | 前缀和见下面的「phi 求和相关」 | copypasta/math.go:2296 |
|||
| 2300 | CF2077C | 排列组合问题 | copypasta/math_comb.go:66 |
|||
| 2300 | CF2077C | 解得 A(x) = x / (1 - x - x^2) | copypasta/math_gf.go:21 |
|||
| 2400 | CF17D | a^b ≡ a^(b mod φ(m)) (mod m), gcd(a,m)=1 | 有 | copypasta/math.go:2433 |
||
| 2400 | CF24D | 三对角矩阵算法 托马斯算法 | copypasta/math_matrix.go:541 |
|||
| 2400 | CF26D | 排列组合问题 | 类似卡特兰数的镜像反射技巧 | 有 | copypasta/math_comb.go:67 |
|
| 2400 | CF73E | 该算法也说明了:前 n 个数的平均质因子数量是 O(loglogn) 级别的 | 转化 | 有 | copypasta/math.go:1131 |
|
| 2400 | CF107D | 矩阵快速幂优化 DP | 有 | copypasta/math_matrix.go:48 |
||
| 2400 | CF226C | ∑k%i 见下面的 floorLoopK | 有 | copypasta/math.go:3873 |
||
| 2400 | CF226C | 矩阵快速幂优化 DP | https://www.luogu.com.cn/problem/P1306 | 有 | copypasta/math_matrix.go:49 |
|
| 2400 | CF293C | 式子变形 | 有 | copypasta/math_basic.go:14 |
||
| 2400 | CF446C | a(n) = (F(n)F(n+4)-3F(n)*F(n+1))/2 | 有 | copypasta/math.go:4147 |
||
| 2400 | CF449D | 《挑战程序设计竞赛》P296 | 与 SOS DP 结合 | distribute-candies-among-children-ii | 有 | copypasta/math_comb.go:437 |
| 2400 | CF593E | 矩阵快速幂优化 DP | 分段 | 有 | copypasta/math_matrix.go:50 |
|
| 2400 | CF605C | 矩阵树定理 基尔霍夫定理 Kirchhoff‘s theorem | 对偶 | 有 | copypasta/math_matrix.go:879 |
|
| 2400 | CF632E | 解得 A(x) = x / (1 - x - x^2) | copypasta/math_gf.go:22 |
|||
| 2400 | CF662A | 那么 a[i]^xorSum 必然比 a[i] 小,所以这个减少操作是存在的。 | 有 | copypasta/games.go:157 |
||
| 2400 | CF662A | 可以用来解决「子序列异或和」相关问题 | 博弈 | 有 | copypasta/math_matrix.go:652 |
|
| 2400 | CF665F | 时间复杂度和 Min_25 筛是一样的 O(n^(3/4) / log n) | 有 | copypasta/math.go:4064 |
||
| 2400 | CF932E | 边界条件:S(n,0)=0, n>=1 S(n,n)=1, n>=0 | count-ways-to-distribute-candies | 有 | copypasta/math.go:3423 |
|
| 2400 | CF932E | 只计算第 n 行 | 有 | copypasta/math.go:3465 |
||
| 2400 | CF959F | 可以用来解决「子序列异或和」相关问题 | 有 | copypasta/math_matrix.go:653 |
||
| 2400 | CF990G | O(n + UlogU), U=max(a) | 树上路径 EDU45 | sorted-gcd-pair-queries | 有 | copypasta/math.go:608 |
| 2400 | CF1007B | 《挑战程序设计竞赛》P296 | 不重不漏 | distribute-candies-among-children-ii | 有 | copypasta/math_comb.go:438 |
| 2400 | CF1017E | NOTE: 坐标值范围不超过 M 的整点凸多边形的顶点数为 O(M^(2/3)) 个 | erect-the-fence find-the-minimum-amount-of-time-to-brew-potions |
有 | copypasta/geometry.go:1042 |
|
| 2400 | CF1017E | 凸包哈希,用于判断两个凸包是否相等 | 有 | copypasta/geometry.go:1093 |
||
| 2400 | CF1036F | 可以用以下题目测试: | 有 | copypasta/geometry.go:179 |
||
| 2400 | CF1096G | 解得 A(x) = x / (1 - x - x^2) | copypasta/math_gf.go:23 |
|||
| 2400 | CF1109D | 排列组合问题 | Prufer 序列 | 有 | copypasta/math_comb.go:68 |
|
| 2400 | CF1142C | NOTE: 坐标值范围不超过 M 的整点凸多边形的顶点数为 O(M^(2/3)) 个 | erect-the-fence find-the-minimum-amount-of-time-to-brew-potions |
有 | copypasta/geometry.go:1043 |
|
| 2400 | CF1163E | 可以用来解决「子序列异或和」相关问题 | copypasta/math_matrix.go:654 |
|||
| 2400 | CF1261D2 | 排列组合问题 | 推荐 | 有 | copypasta/math_comb.go:69 |
|
| 2400 | CF1526E | 适用于 n 巨大但 k 或 n-k 较小的情况(或者只计算一次组合数,O(1) 空间) | 有 | copypasta/math.go:3237 |
||
| 2400 | CF1526E | 排列组合问题 | 后缀数组 | 有 | copypasta/math_comb.go:70 |
|
| 2400 | CF1542E1 | O(nk) 插入法 + 前缀和优化 DP | k-inverse-pairs-array count-the-number-of-inversions |
有 | copypasta/math.go:3612 |
|
| 2400 | CF1591F | 《挑战程序设计竞赛》P296 | 辅助思考 DP | distribute-candies-among-children-ii | copypasta/math_comb.go:439 |
|
| 2400 | CF1608D | 排列组合问题 | 有 | copypasta/math_comb.go:71 |
||
| 2400 | CF1726E | 排列组合问题 | 满足 |p_i − p^{−1}_i| ≤ 1 的排列个数 | 有 | copypasta/math_comb.go:72 |
|
| 2400 | CF1780E | ∑k%i 见下面的 floorLoopK | GCD todo | 有 | copypasta/math.go:3874 |
|
| 2400 | CF1902F | 可以用来解决「子序列异或和」相关问题 | LCA | 有 | copypasta/math_matrix.go:655 |
|
| 2400 | CF1902F | EXTRA: 从高到低,对于二进制长度相同的基,选更靠右的 | 有 | copypasta/math_matrix.go:720 |
||
| 2400 | CF1930E | 排列组合问题 | 选长为 2k+1 的子序列,删除其中前 k 个和后 k 个 | 有 | copypasta/math_comb.go:73 |
|
| 2400 | CF1934D2 | 交互+博弈 | 有 | copypasta/games.go:60 |
||
| 2400 | CF1979E | 顺时针旋转 45° (x,y) -> (x+y,y-x) 记作 (x’,y’) | minimize-manhattan-distances | copypasta/geometry.go:111 |
||
| 2400 | CF2171H | 调和级数枚举(枚举倍数) | 有 | copypasta/math.go:132 |
||
| 2400 | CF2176F | O(n + UlogU), U=max(a) | sorted-gcd-pair-queries | 有 | copypasta/math.go:609 |
|
| 2500 | CF60D | 本原勾股数组 Primitive Pythagorean Triples | count-square-sum-triples | 有 | copypasta/math.go:665 |
|
| 2500 | CF93D | 矩阵快速幂优化 DP | 前 n 项之和 | 有 | copypasta/math_matrix.go:51 |
|
| 2500 | CF93D | 注:一种理解角度是,基于汉克尔矩阵的在线高斯消元 | 有 | copypasta/math_matrix.go:223 |
||
| 2500 | CF156D | 排列组合问题 | Prufer 序列 n^(cc-2) | 有 | copypasta/math_comb.go:74 |
|
| 2500 | CF314D | 顺时针旋转 45° (x,y) -> (x+y,y-x) 记作 (x’,y’) | minimize-manhattan-distances | 有 | copypasta/geometry.go:112 |
|
| 2500 | CF348D | 排列组合问题 | 不相交路径 | 有 | copypasta/math_comb.go:75 |
|
| 2500 | CF351C | 矩阵快速幂优化 DP | min + 也有 O(nlogn) 做法 | 有 | copypasta/math_matrix.go:52 |
|
| 2500 | CF528D | 做法:把 b 反转后求卷积 | copypasta/math_fft.go:151 |
|||
| 2500 | CF594D | a(n) ~ n^2/(2 log n) | gcd-sort-of-an-array count-ways-to-make-array-with-product |
有 | copypasta/math.go:1881 |
|
| 2500 | CF594D | 比较松的下界 φ(n) >= √(n/2) | 有 | copypasta/math.go:2292 |
||
| 2500 | CF618E | 逆时针旋转,传入旋转的弧度 | 有 | copypasta/geometry.go:320 |
||
| 2500 | CF757E | 一个有用的性质:积性函数的和函数也是积性函数 | 有 | copypasta/math.go:1248 |
||
| 2500 | CF792E | ∑k%i 见下面的 floorLoopK | 有 | copypasta/math.go:3875 |
||
| 2500 | CF840C | 排列组合问题 | 多重集排列,相邻元素不同 | 有 | copypasta/math_comb.go:76 |
|
| 2500 | CF908E | B(n) = Sum_{k=1..n} S2(n,k) | 有 | copypasta/math.go:3515 |
||
| 2500 | CF908E | 排列组合问题 | 等价类 贝尔数 | 有 | copypasta/math_comb.go:77 |
|
| 2500 | CF995D | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | 有 | copypasta/games.go:43 |
||
| 2500 | CF997C | 求 1^-1, 2^-1, …, (p−1)^-1 mod p | 有 | copypasta/math.go:2734 |
||
| 2500 | CF997C | 排列组合问题 | 有 | copypasta/math_comb.go:78 |
||
| 2500 | CF1043F | O(n + UlogU), U=max(a) | 统计 a 中所有大小为 k 的子序列的 GCD 的出现次数 | sorted-gcd-pair-queries | 有 | copypasta/math.go:610 |
| 2500 | CF1043F | 调和级数枚举写法 | 有 | copypasta/math.go:3724 |
||
| 2500 | CF1043F | 《挑战程序设计竞赛》P296 | DP | distribute-candies-among-children-ii | 有 | copypasta/math_comb.go:440 |
| 2500 | CF1096E | 排列组合问题 | 容斥 | 有 | copypasta/math_comb.go:79 |
|
| 2500 | CF1100F | 可以用来解决「子序列异或和」相关问题 | 有 | copypasta/math_matrix.go:657 |
||
| 2500 | CF1100F | EXTRA: 从高到低,对于二进制长度相同的基,选更靠右的 | 有 | copypasta/math_matrix.go:721 |
||
| 2500 | CF1251F | 解得 A(x) = x / (1 - x - x^2) | copypasta/math_gf.go:24 |
|||
| 2500 | CF1312F | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | copypasta/games.go:44 |
|||
| 2500 | CF1423J | 式子变形 | 给定正整数 n,计算 x+2y+4z=n 有多少个非负整数解 | 有 | copypasta/math.go:107 |
|
| 2500 | CF1427E | 可以用来解决「子序列异或和」相关问题 | 构造 | 有 | copypasta/math_matrix.go:658 |
|
| 2500 | CF1516E | 边界条件:s(n,0)=0, n>=1 s(n,n)=1, n>=0 | number-of-ways-to-rearrange-sticks-with-k-sticks-visible | 有 | copypasta/math.go:3413 |
|
| 2500 | CF1548C | 解得 A(x) = x / (1 - x - x^2) | https://chatgpt.com/c/682db19e-19a4-8011-908b-50e7a797d1df | 有 | copypasta/math_gf.go:25 |
|
| 2500 | CF1716F | 边界条件:S(n,0)=0, n>=1 S(n,n)=1, n>=0 | 把幂转成下降幂 https://chatgpt.com/c/6836d520-3efc-8011-ac52-a2207a5251d0 | count-ways-to-distribute-candies | 有 | copypasta/math.go:3424 |
| 2500 | CF1778E | 可以用来解决「子序列异或和」相关问题 | 有 | copypasta/math_matrix.go:659 |
||
| 2500 | CF1778E | EXTRA: 从高到低,对于二进制长度相同的基,选更靠右的 | 有 | copypasta/math_matrix.go:722 |
||
| 2500 | CF1789E | ∑k%i 见下面的 floorLoopK | 式子同时包含上取整和下取整 | 有 | copypasta/math.go:3876 |
|
| 2500 | CF1838E | 排列组合问题 | 有 | copypasta/math_comb.go:80 |
||
| 2500 | CF1986G2 | 复杂度 O(NlogN) | 有 | copypasta/math.go:1710 |
||
| 2600 | CF60E | 矩阵快速幂优化 DP | 有 | copypasta/math_matrix.go:53 |
||
| 2600 | CF140E | 排列组合问题 | 推荐 | find-all-good-strings | 有 | copypasta/math_comb.go:83 |
| 2600 | CF285E | 本质是容斥 | 有 | copypasta/math_comb.go:480 |
||
| 2600 | CF622F | 时间复杂度 O(n^2) | 等幂和 | 有 | copypasta/math_numerical_analysis.go:59 |
|
| 2600 | CF662C | 然后枚举两元素异或和,在原数组的异或字典树上查询最大异或和 | count-pairs-with-xor-in-a-range | 有 | copypasta/math_fwt.go:27 |
|
| 2600 | CF724G | 可以用来解决「子序列异或和」相关问题 | 图上线性基 | 有 | copypasta/math_matrix.go:660 |
|
| 2600 | CF914G | 然后枚举两元素异或和,在原数组的异或字典树上查询最大异或和 | count-pairs-with-xor-in-a-range | copypasta/math_fwt.go:29 |
||
| 2600 | CF982E | 最简单的做法就是 min(x1+y1, x2+y2) | 台球 | 有 | copypasta/math.go:2656 |
|
| 2600 | CF1278F | 边界条件:S(n,0)=0, n>=1 S(n,n)=1, n>=0 | 把幂转成下降幂 https://chatgpt.com/c/68284f34-38cc-8011-9dd2-04beb3fbed53 | count-ways-to-distribute-candies | 有 | copypasta/math.go:3425 |
| 2600 | CF1400G | 《挑战程序设计竞赛》P296 | 有 | copypasta/math_comb.go:441 |
||
| 2600 | CF1430G | 矩阵树定理 基尔霍夫定理 Kirchhoff‘s theorem | https://codeforces.com/blog/entry/83614?#comment-709868 | 有 | copypasta/math_matrix.go:880 |
|
| 2600 | CF1437F | 排列组合问题 | find-all-good-strings | 有 | copypasta/math_comb.go:84 |
|
| 2600 | CF1656F | 式子变形 | 完全图带参 MST | 有 | copypasta/math.go:108 |
|
| 2600 | CF1778F | x 的质因数分解中,每个质数的幂次 e 改成 ceil(e/2) = (e+1)/2 | count-beautiful-substrings-ii | 有 | copypasta/math.go:1935 |
|
| 2600 | CF1895F | 矩阵快速幂优化 DP | 如何容斥(正难则反) | 有 | copypasta/math_matrix.go:54 |
|
| 2700 | CF70D | 用平衡树加点 | 有 | copypasta/geometry.go:1115 |
||
| 2700 | CF98E | 纳什均衡 | 有 | copypasta/games.go:64 |
||
| 2700 | CF251D | 可以用来解决「子序列异或和」相关问题 | 输出具体方案 | copypasta/math_matrix.go:661 |
||
| 2700 | CF498E | 矩阵快速幂优化 DP | 分段 DP套DP | 有 | copypasta/math_matrix.go:55 |
|
| 2700 | CF575A | 矩阵快速幂优化 DP | 分段 倍增 | copypasta/math_matrix.go:56 |
||
| 2700 | CF827E | 做法:把 b 反转后求卷积 | copypasta/math_fft.go:152 |
|||
| 2700 | CF906D | a^b ≡ a^(b mod φ(m)) (mod m), gcd(a,m)=1 | copypasta/math.go:2434 |
|||
| 2700 | CF932F | 用平衡树加点 | 启发式合并 | 有 | copypasta/geometry.go:1116 |
|
| 2700 | CF995F | 时间复杂度 O(n^2) | copypasta/math_numerical_analysis.go:60 |
|||
| 2700 | CF1202F | ∑k%i 见下面的 floorLoopK | 有 | copypasta/math.go:3877 |
||
| 2700 | CF1511F | 矩阵快速幂优化 DP | 字典树 todo 什么情况下系数矩阵阶数最大? | 有 | copypasta/math_matrix.go:57 |
|
| 2700 | CF1511F | 注:一种理解角度是,基于汉克尔矩阵的在线高斯消元 | 有 | copypasta/math_matrix.go:224 |
||
| 2700 | CF1515G | bi 可以是负数 | 有 | copypasta/math.go:2777 |
||
| 2700 | CF1542E2 | O(nk) 插入法 + 前缀和优化 DP | k-inverse-pairs-array count-the-number-of-inversions |
有 | copypasta/math.go:3613 |
|
| 2700 | CF1542E2 | 解得 A(x) = x / (1 - x - x^2) | https://www.luogu.com.cn/article/k9ipc3ow | 有 | copypasta/math_gf.go:26 |
|
| 2700 | CF1730E | 复杂度 O(NlogN) | 有 | copypasta/math.go:1711 |
||
| 2700 | CF1924D | 排列组合问题 | 证明方式类似卡特兰数 | find-all-good-strings | 有 | copypasta/math_comb.go:85 |
| 2800 | CF1808E3 | 排列组合问题 | 做法不止一种,包括二项式反演 | find-all-good-strings | 有 | copypasta/math_comb.go:86 |
| 2800 | CF1845F | 解得 A(x) = x / (1 - x - x^2) | copypasta/math_gf.go:27 |
|||
| 2900 | CF19E | 可以用来解决「子序列异或和」相关问题 | 图上线性基 | 有 | copypasta/math_matrix.go:663 |
|
| 2900 | CF497E | 矩阵快速幂优化 DP | 数位 DP | copypasta/math_matrix.go:58 |
||
| 2900 | CF585E | O(n + UlogU), U=max(a) | 有 | copypasta/math.go:611 |
||
| 2900 | CF587E | 可以用来解决「子序列异或和」相关问题 | copypasta/math_matrix.go:664 |
|||
| 2900 | CF725F | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | 拿照片,最大化幸福总和之差 | 有 | copypasta/games.go:45 |
|
| 2900 | CF917C | 矩阵快速幂优化 DP | 分段 min + | 有 | copypasta/math_matrix.go:59 |
|
| 2900 | CF960G | 边界条件:s(n,0)=0, n>=1 s(n,n)=1, n>=0 | number-of-ways-to-rearrange-sticks-with-k-sticks-visible | copypasta/math.go:3414 |
||
| 2900 | CF1028H | a(n) ~ n^2/(2 log n) | gcd-sort-of-an-array count-ways-to-make-array-with-product |
有 | copypasta/math.go:1882 |
|
| 2900 | CF1028H | log a(n) ~ n log 2 | 有 | copypasta/math.go:2067 |
||
| 2900 | CF1264D2 | ∑i=[0..k] C(n,i)*C(m,k-i) = C(n+m,k) | 有 | copypasta/math_comb.go:134 |
||
| 3000 | CF375E | 矩阵树定理 基尔霍夫定理 Kirchhoff‘s theorem | copypasta/math_matrix.go:881 |
|||
| 3000 | CF506E | 注:一种理解角度是,基于汉克尔矩阵的在线高斯消元 | copypasta/math_matrix.go:225 |
|||
| 3000 | CF891E | 指数生成函数 EGF Exponential generating function | 有 | copypasta/math_ntt.go:69 |
||
| 3000 | CF1152F2 | 矩阵快速幂优化 DP | 状态设计 | 有 | copypasta/math_matrix.go:60 |
|
| 3000 | CF1299D | 可以用来解决「子序列异或和」相关问题 | copypasta/math_matrix.go:666 |
|||
| 3300 | CF618G | 矩阵快速幂优化 DP | 期望 DP | copypasta/math_matrix.go:61 |
||
| 3500 | CF1336E2 | 可以用来解决「子序列异或和」相关问题 | copypasta/math_matrix.go:667 |
|||
| CF1C | 另一种写法是求两中垂线交点 | 有 | copypasta/geometry.go:380 |
|||
| CF11A | 数位 | 900 上取整 | harshad-number | 有 | copypasta/math_basic.go:7 |
|
| CF21B | 求解 Ax=B,A 为方阵,返回解(无解或有无穷多组解) | 有 | copypasta/math_matrix.go:535 |
|||
| CF24D | 矩阵 | copypasta/math_matrix.go:27 |
||||
| CF45G | 2e9 内最大的为 a(1847133842) = 1861 | 有 | copypasta/math.go:1008 |
|||
| CF87C | 只能取 p^i 个(p 为奇素数):SG(n) = n%2 | subtree-removal-game-with-fibonacci-tree | 有 | copypasta/games.go:188 |
||
| CF87E | todo 闵可夫斯基和 Minkowski sum | copypasta/geometry.go:1221 |
||||
| CF138D | 此时对手的状态为必胜状态——对手必定是胜利的,自己就输掉了游戏 | (注:这是挑战上推荐的题目) | stone-game-vi | copypasta/games.go:47 |
||
| CF226C | a(n) = (F(n)F(n+4)-3F(n)*F(n+1))/2 | 有 | copypasta/math.go:4146 |
|||
| CF235B | 例如,在该页面搜索 permutation 可以找到一些有趣的计数问题 | 时找到的序列) | 有 | copypasta/math.go:194 |
||
| CF274C | 下面交换了一下乘除的顺序,减小精度的丢失 | copypasta/geometry.go:393 |
||||
| CF281B | a, b = b, r | copypasta/math_continued_fraction.go:42 |
||||
| CF340B | todo 点集的最大四边形 | copypasta/geometry.go:1226 |
||||
| CF340C | = 2*∑(i*ai-preSum(i-1)), i=[0,n-1], a 需要排序 | 有 | copypasta/math.go:210 |
|||
| CF425E | 排列组合问题 | 更快的做法 https://chatgpt.com/c/684b7418-ff80-8011-bd87-3a664dfcbb97 | find-all-good-strings | copypasta/math_comb.go:87 |
||
| CF429D | 返回最近点对距离的平方 | 有 | copypasta/geometry.go:967 |
|||
| CF438E | 分治 FFT | copypasta/math_ntt.go:123 |
||||
| CF451E | 可重集排列组合 | 有 | copypasta/math_comb.go:164 |
|||
| CF491B | 顺时针旋转 45° (x,y) -> (x+y,y-x) 记作 (x’,y’) | minimize-manhattan-distances minimum-time-for-k-virus-variants-to-spread |
copypasta/geometry.go:115 |
|||
| CF543D | 加法运算见下面的 add1 | 有 | copypasta/math.go:2542 |
|||
| CF543D | 计算 (k,x) + (0,1) | 有 | copypasta/math.go:2566 |
|||
| CF600D | 两圆面积交 = 面积和 - 面积并 | copypasta/geometry.go:744 |
||||
| CF618F | 鸽巢原理(抽屉原理) pigeonhole principle | 有 | copypasta/math_comb.go:22 |
|||
| CF633B | 阶乘的质因数分解中 p 的幂次 | 有 | copypasta/math.go:1373 |
|||
| CF679B | 贪心分拆 | 有 | copypasta/math_comb.go:248 |
|||
| CF696C | 其他相关序列 | 有 | copypasta/math.go:4154 |
|||
| CF735D | 2e9 内最大的为 a(1847133842) = 1861 | 有 | copypasta/math.go:1007 |
|||
| CF762A | 求 x 的所有因子 | 简单的质因数分解 | 有 | copypasta/math.go:1989 |
||
| CF772C | n/φ(n) = 3 iff n = 2^w * 3^u, w >= 1, u >= 1 | 有 | copypasta/math.go:2314 |
|||
| CF772C | 返回最小正整数解 | 有 | copypasta/math.go:2610 |
|||
| CF803F | 构造 | https://ac.nowcoder.com/acm/problem/112055 | 有 | copypasta/math.go:484 |
||
| CF814D | 圆与扫描线 | 有 | copypasta/geometry.go:898 |
|||
| CF850C | 取石子变形 | 有 | copypasta/games.go:190 |
|||
| CF893E | 变形:允许空盒 | count-ways-to-make-array-with-product | 有 | copypasta/math_comb.go:113 |
||
| CF895C | 可以用来解决「子序列异或和」相关问题 | 有 | copypasta/math_matrix.go:673 |
|||
| CF920G | = Sum_{d|n} d*μ(m/d) 用 n 的因子来容斥 | 有 | copypasta/math.go:3691 |
|||
| CF954I | 贝尔数 EXTRA:如何搜索所有集合划分 | 有 | copypasta/math.go:3570 |
|||
| CF958F3 | 入参出参都是次项从低到高的系数 | 可重集大小为 k 的不同子集个数 | 有 | copypasta/math_fft.go:164 |
||
| CF958F3 | 分治 FFT | 有 | copypasta/math_ntt.go:122 |
|||
| CF993E | 有关快速数论变换(NTT)以及多项式运算的内容见 math_ntt.go | multiply-two-polynomials | copypasta/math_fft.go:43 |
|||
| CF1009D | phi 求和相关 | 有 | copypasta/math.go:2330 |
|||
| CF1036E | 直线 a b 交点 - 两点式 | 有 | copypasta/geometry.go:531 |
|||
| CF1070A | 0’s and d’s (2~9): A096681-A096688 | 有 | copypasta/math.go:256 |
|||
| CF1076B | a(n) ~ n^2/(2 log n) | 有 | copypasta/math.go:1855 |
|||
| CF1081E | divisors[j] = append(divisors[j], i) | 有 | copypasta/math.go:1724 |
|||
| CF1093G | 顺时针旋转 45° (x,y) -> (x+y,y-x) 记作 (x’,y’) | minimum-time-for-k-virus-variants-to-spread | 有 | copypasta/geometry.go:116 |
||
| CF1098E | ∑⌊(ai+b)/m⌋, i in [0,n-1] | copypasta/math.go:741 |
||||
| CF1114C | 阶乘的质因数分解中 p 的幂次 | 有 | copypasta/math.go:1374 |
|||
| CF1163C2 | 梯形个数 | count-number-of-trapezoids-ii | 有 | copypasta/geometry.go:143 |
||
| CF1178D | 这题需要用到 a(n) ~ O(√n) | 有 | copypasta/math.go:1020 |
|||
| CF1178E | 鸽巢原理 抽屉原理 | 有 | copypasta/math.go:79 |
|||
| CF1182F | ∑⌊(ai+b)/m⌋, i in [0,n-1] | copypasta/math.go:740 |
||||
| CF1210C | GCD 性质统计相关 | 有 | copypasta/math.go:557 |
|||
| CF1218D | 然后枚举两元素异或和,在原数组的异或字典树上查询最大异或和 | count-pairs-with-xor-in-a-range | 有 | copypasta/math_fwt.go:26 |
||
| CF1244C | 可以改成非负整数解(见代码注释) | 使非负解 x+y 尽量小 | 有 | copypasta/math.go:2650 |
||
| CF1278F | 对 1~n 的每个排列,计算其后缀最小值数组去重后的元素之和 | 洛谷有艹标算的题解 | 有 | copypasta/math.go:3434 |
||
| CF1342E | 将 n 个元素拆分为 k 个非空集的方法数 | 有 | copypasta/math.go:3418 |
|||
| CF1359F | 交点为 a.point(ta) 或 b.point(tb) | 有 | copypasta/geometry.go:547 |
|||
| CF1359F | todo 扫描线:线段求交 O(nlogn) | 有 | copypasta/geometry.go:937 |
|||
| CF1368B | a(n) = phi(n)/2 for n >= 3 | 有 | copypasta/math_comb.go:282 |
|||
| CF1462D | LCM | 的 O(nlogn) 解法 | copypasta/math.go:495 |
|||
| CF1468F | 最简分数 | 有 | copypasta/math.go:688 |
|||
| CF1470B | log a(n) ~ n log 2 | 有 | copypasta/math.go:2065 |
|||
| CF1485D | a, b = b%a, a | copypasta/math.go:531 |
||||
| CF1497E2 | log a(n) ~ n log 2 | copypasta/math.go:2066 |
||||
| CF1499D | 所以相当于是在求 a(LCM/GCD) = 1<<omega[LCM/GCD] | copypasta/math.go:2269 |
||||
| CF1500B | 注意乘法溢出的可能 | 有 | copypasta/math.go:2802 |
|||
| CF1512G | 一个典型的例子见下面 σ(n) 的线性筛求法 | copypasta/math.go:1243 |
||||
| CF1512G | 线性筛求 n 的因子之和 σ(n) | copypasta/math.go:1761 |
||||
| CF1515E | 例如,在该页面搜索 permutation 可以找到一些有趣的计数问题 | 有 | copypasta/math.go:188 |
|||
| CF1526B | 两种硬币面额为 a 和 b,互质,数量无限,所不能凑出的数值的最大值为 a*b-a-b | copypasta/math.go:502 |
||||
| CF1538D | 单个数的 Omega | copypasta/math.go:1431 |
||||
| CF1542C | a, b = b%a, a | 有 | copypasta/math.go:532 |
|||
| CF1548D1 | 利用该定理可以证明:不存在坐标均为整数的正三角形、正六边形等 | copypasta/geometry.go:100 |
||||
| CF1548D2 | 利用该定理可以证明:不存在坐标均为整数的正三角形、正六边形等 | copypasta/geometry.go:101 |
||||
| CF1583F | 注:log(81) / log(3) = 4.000000000000001 | 有 | copypasta/math.go:406 |
|||
| CF1603A | a, b = b%a, a | 有 | copypasta/math.go:533 |
|||
| CF1614D2 | 求 x 的所有因子 | copypasta/math.go:1988 |
||||
| CF1696E | 递推式 C(n, k) = C(n-1, k-1) + C(n-1, k) | copypasta/math_comb.go:124 |
||||
| CF1737B | 见进阶指南 pp.140-141 | copypasta/math.go:1557 |
||||
| CF1748D | 最简单的做法就是 min(x1+y1, x2+y2) | 有 | copypasta/math.go:2655 |
|||
| CF1770C | a 中任意两数互质 <=> 每个质数至多整除一个 a[i] | 有 | copypasta/math.go:488 |
|||
| CF1823E | 取石子变形 | copypasta/games.go:191 |
||||
| CF1826F | 见下面这两份代码的区别 | 有 | copypasta/geometry.go:43 |
|||
| CF1826F | 点 a 在直线 l 上的投影 | 有 | copypasta/geometry.go:495 |
|||
| CF1830C | 所有在 n×n 格点中不越过对角线的单调路径的个数 | handshakes-that-dont-cross | 有 | copypasta/math.go:3172 |
||
| CF1832E | 差分、前缀和与组合数 | copypasta/math_comb.go:98 |
||||
| CF1833F | x^-1 ≡ a^(p-2) (mod p) | copypasta/math.go:2712 |
||||
| CF1841F | 双指针维护 | copypasta/geometry.go:355 |
||||
| CF1841F | todo 闵可夫斯基和 Minkowski sum | copypasta/geometry.go:1222 |
||||
| CF1848E | 加法运算见下面的 add1 | 有 | copypasta/math.go:2541 |
|||
| CF1853B | 最简单的做法就是 min(x1+y1, x2+y2) | 非暴力做法 | copypasta/math.go:2652 |
|||
| CF1857F | 一元二次方程/不等式 | 有 | copypasta/math.go:121 |
|||
| CF1884D | GCD 卷积(GCD Convolution) | 有 | copypasta/math.go:516 |
|||
| CF1898D | = max(a-b, b-a) + max(c-d, d-c) | reverse-subarray-to-maximize-array-value reverse-subarray-to-maximize-array-value |
有 | copypasta/geometry.go:132 |
||
| CF1902F | panic(“todo”) | 有 | copypasta/math_matrix.go:849 |
|||
| CF1903E | 交互+博弈 | copypasta/games.go:61 |
||||
| CF1916H2 | Gaussian binomial coefficient | 有 | copypasta/math_comb.go:192 |
|||
| CF1955G | 不需要排序的写法 | 有 | copypasta/math.go:1632 |
|||
| CF1967C | 递推式 C(n, k) = C(n-1, k-1) + C(n-1, k) | copypasta/math_comb.go:125 |
||||
| CF2026D | 如果 sqrt 前面是负号,那么下取整要变成上取整 | stone-removal-game | 有 | copypasta/math.go:65 |
||
| CF2065G | for i>=2, pf[i][0] == i means i is prime | 有 | copypasta/math.go:2199 |
|||
| CF2167D | a, b = b%a, a | 估算时间复杂度 | 有 | copypasta/math.go:534 |
||
| CFEDU-A | NOTE: 坐标值范围不超过 M 的整点凸多边形的顶点数为 O(M^(2/3)) 个 | Codeforces EDU | copypasta/geometry.go:1044 |
|||
| CF102331E | 可以用来解决「子序列异或和」相关问题 | copypasta/math_matrix.go:668 |
||||
| CF103107F | 一个典型的例子见下面 σ(n) 的线性筛求法 | copypasta/math.go:1244 |
||||
| CF103107F | a(n) ~ n^2/(2 log n) | 另一种做法是欧拉筛 | count-ways-to-make-array-with-product | copypasta/math.go:1883 |
||
| CF103688E | GCD 卷积(GCD Convolution) | copypasta/math.go:515 |
||||
| CF104081K | 有关快速数论变换(NTT)以及多项式运算的内容见 math_ntt.go | multiply-two-polynomials | copypasta/math_fft.go:44 |
|||
| CF105139B | = 0:a 和 b 平行或重合(共基线) | copypasta/geometry.go:63 |
||||
| CF105139L | LCM | 分类讨论 | copypasta/math.go:493 |
|||
| CF105385F | Abel 求和公式 / 离散分部积分公式 / 分部求和法 / Abel 变换 | copypasta/math.go:113 |
||||
| CF106215L | N*N 的乘法表中有多少个不同数字? | count-square-sum-triples | copypasta/math.go:169 |
|||
| CF106215L | 本原勾股数组 Primitive Pythagorean Triples | count-square-sum-triples | copypasta/math.go:664 |
字符串
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1200 | CF1989B | 返回 t 最长前缀的长度,满足该前缀是 s 的子序列 | subsequence-with-the-minimum-score find-the-lexicographically-smallest-valid-sequence |
有 | copypasta/strings.go:555 |
|
| 1300 | CF1194C | 返回 t 最长前缀的长度,满足该前缀是 s 的子序列 | subsequence-with-the-minimum-score find-the-lexicographically-smallest-valid-sequence |
有 | copypasta/strings.go:556 |
|
| 1400 | CF182D | 如果没有循环节,那么返回原串和 1 | 有 | copypasta/strings.go:333 |
||
| 1400 | CF1845C | 子序列自动机 | is-subsequence shortest-impossible-sequence-of-rolls |
有 | copypasta/strings.go:581 |
|
| 1400 | CF1847C | 一棵(所有叶节点深度都相同的)二叉树 | count-pairs-with-xor-in-a-range maximum-xor-of-two-non-overlapping-subtrees |
copypasta/trie01.go:15 |
||
| 1400 | CF1847C | 返回 v 与 trie 上所有数的最大异或值,trie 不能是空的 | maximum-strong-pair-xor-ii maximum-xor-with-an-element-from-array |
copypasta/trie01.go:158 |
||
| 1500 | CF91A | 子序列自动机 | is-subsequence shortest-impossible-sequence-of-rolls |
有 | copypasta/strings.go:583 |
|
| 1600 | CF600A | 库函数应用题 | 有 | copypasta/strings.go:16 |
||
| 1600 | CF1137B | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 构造 | shortest-palindrome distinct-echo-substrings |
有 | copypasta/strings.go:252 |
| 1700 | CF126B | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | shortest-palindrome distinct-echo-substrings |
有 | copypasta/strings.go:253 |
|
| 1700 | CF778A | 返回 t 最长前缀的长度,满足该前缀是 s 的子序列 | subsequence-with-the-minimum-score find-the-lexicographically-smallest-valid-sequence |
有 | copypasta/strings.go:557 |
|
| 1700 | CF1690F | 如果没有循环节,那么返回原串和 1 | copypasta/strings.go:334 |
|||
| 1700 | CF1948D | O(n^2) 计算 LCP —— 如果你不想用后缀数组的话 | 也有更简单的做法 | 有 | copypasta/strings.go:1325 |
|
| 1700 | CF2010C2 | 模板题 | 有 | copypasta/strings.go:398 |
||
| 1700 | CF2104E | 子序列自动机 | is-subsequence shortest-impossible-sequence-of-rolls |
有 | copypasta/strings.go:582 |
|
| 1800 | CF271D | 把 (s[i], s[n-1-i]) 插入字典树 | 满足一些条件的本质不同子串个数 | palindrome-pairs re-space-lcci |
有 | copypasta/trie.go:25 |
| 1800 | CF471D | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | shortest-palindrome distinct-echo-substrings |
有 | copypasta/strings.go:254 |
|
| 1800 | CF706D | 一棵(所有叶节点深度都相同的)二叉树 | count-pairs-with-xor-in-a-range maximum-xor-of-two-non-overlapping-subtrees |
有 | copypasta/trie01.go:16 |
|
| 1800 | CF923C | 一棵(所有叶节点深度都相同的)二叉树 | 字典序最小 | count-pairs-with-xor-in-a-range maximum-xor-of-two-non-overlapping-subtrees |
copypasta/trie01.go:17 |
|
| 1800 | CF1326D2 | 最长回文子串 Manacher(马拉车算法) | 去掉子串后,剩余部分是回文串 | longest-palindromic-substring | 有 | copypasta/strings.go:694 |
| 1900 | CF223B | 返回 t 最长前缀的长度,满足该前缀是 s 的子序列 | 记录 s 的每个字母匹配到 t 中的第几个 | subsequence-with-the-minimum-score find-the-lexicographically-smallest-valid-sequence |
有 | copypasta/strings.go:558 |
| 1900 | CF455B | 把 (s[i], s[n-1-i]) 插入字典树 | palindrome-pairs re-space-lcci |
copypasta/trie.go:26 |
||
| 1900 | CF535D | 模板题 | copypasta/strings.go:399 |
|||
| 1900 | CF835D | 最长回文子串 Manacher(马拉车算法) | longest-palindromic-substring | 有 | copypasta/strings.go:696 |
|
| 1900 | CF2093G | 一棵(所有叶节点深度都相同的)二叉树 | count-pairs-with-xor-in-a-range maximum-xor-of-two-non-overlapping-subtrees |
有 | copypasta/trie01.go:18 |
|
| 1900 | CF2093G | 返回 v 与 trie 上所有数的最大异或值,trie 不能是空的 | maximum-strong-pair-xor-ii maximum-xor-with-an-element-from-array |
有 | copypasta/trie01.go:159 |
|
| 2000 | CF113B | 把 (s[i], s[n-1-i]) 插入字典树 | 满足一些条件的本质不同子串个数 | palindrome-pairs re-space-lcci |
有 | copypasta/trie.go:27 |
| 2000 | CF346B | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 与 LCS 结合 | shortest-palindrome distinct-echo-substrings |
有 | copypasta/strings.go:256 |
| 2000 | CF494B | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 与计数 DP 结合 | distinct-echo-substrings | 有 | copypasta/strings.go:257 |
| 2000 | CF514C | 把 (s[i], s[n-1-i]) 插入字典树 | palindrome-pairs re-space-lcci |
有 | copypasta/trie.go:28 |
|
| 2000 | CF615C | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 最大匹配个数 | 有 | copypasta/strings.go:259 |
|
| 2000 | CF817E | 一棵(所有叶节点深度都相同的)二叉树 | count-pairs-with-xor-in-a-range maximum-xor-of-two-non-overlapping-subtrees |
有 | copypasta/trie01.go:19 |
|
| 2000 | CF817E | b ^= 1 | count-pairs-with-xor-in-a-range | 有 | copypasta/trie01.go:247 |
|
| 2000 | CF842D | 一棵(所有叶节点深度都相同的)二叉树 | maximum-xor-of-two-non-overlapping-subtrees | 有 | copypasta/trie01.go:20 |
|
| 2000 | CF842D | !需要保证 trie 中没有重复元素 | 有 | copypasta/trie01.go:369 |
||
| 2000 | CF1200E | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 有 | copypasta/strings.go:258 |
||
| 2019 | CF102511G | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | ICPC Final G | copypasta/acam.go:87 |
||
| 2100 | CF128B | 第 k 小子串 todo | copypasta/strings.go:1028 |
|||
| 2100 | CF665E | 一棵(所有叶节点深度都相同的)二叉树 | 有 | copypasta/trie01.go:21 |
||
| 2100 | CF665E | b ^= 1 | count-pairs-with-xor-in-a-range | 有 | copypasta/trie01.go:248 |
|
| 2100 | CF1163D | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 与 DP 结合 | 有 | copypasta/strings.go:260 |
|
| 2100 | CF1446C | 一棵(所有叶节点深度都相同的)二叉树 | subarrays-with-xor-at-least-k | copypasta/trie01.go:23 |
||
| 2200 | CF7D | 最长回文子串 Manacher(马拉车算法) | longest-palindromic-substring | 有 | copypasta/strings.go:695 |
|
| 2200 | CF25E | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 构造 t+”#”+s | 有 | copypasta/strings.go:264 |
|
| 2200 | CF282E | 一棵(所有叶节点深度都相同的)二叉树 | 数组前缀异或数组后缀的最大值(前后缀不重叠,但这要求可以无视) | subarrays-with-xor-at-least-k | 有 | copypasta/trie01.go:24 |
| 2200 | CF282E | o.val = v | 有 | copypasta/trie01.go:93 |
||
| 2200 | CF526D | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 有 | copypasta/strings.go:261 |
||
| 2200 | CF526D | 如果没有循环节,那么返回原串和 1 | 有 | copypasta/strings.go:335 |
||
| 2200 | CF954I | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 有 | copypasta/strings.go:262 |
||
| 2200 | CF965E | 把 (s[i], s[n-1-i]) 插入字典树 | 与贪心堆结合 | palindrome-pairs re-space-lcci |
有 | copypasta/trie.go:29 |
| 2200 | CF979D | 一棵(所有叶节点深度都相同的)二叉树 | subarrays-with-xor-at-least-k | 有 | copypasta/trie01.go:25 |
|
| 2200 | CF979D | 不存在时返回 -1 | 有 | copypasta/trie01.go:223 |
||
| 2200 | CF1003F | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 有 | copypasta/strings.go:263 |
||
| 2200 | CF1968G2 | 模板题 | 有 | copypasta/strings.go:400 |
||
| 2200 | CF2045H | O(n^2) 计算 LCP —— 如果你不想用后缀数组的话 | 有 | copypasta/strings.go:1326 |
||
| 2200 | CF2209F | 模板题 | copypasta/strings.go:401 |
|||
| 2300 | CF123D | 子串统计类题目 | 注:这是《挑战》上推荐的题目 | 有 | copypasta/strings.go:1016 |
|
| 2300 | CF557E | 把 (s[i], s[n-1-i]) 插入字典树 | re-space-lcci | 有 | copypasta/trie.go:30 |
|
| 2300 | CF802I | 子串统计类题目 | 稍作改动 | 有 | copypasta/strings.go:1018 |
|
| 2300 | CF808G | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 与 DP 结合 | shortest-string-that-contains-three-strings | 有 | copypasta/strings.go:267 |
| 2300 | CF888G | 一棵(所有叶节点深度都相同的)二叉树 | subarrays-with-xor-at-least-k | 有 | copypasta/trie01.go:26 |
|
| 2300 | CF888G | 返回 v 与 trie 上所有数的最小异或值,trie 不能是空的 | 有 | copypasta/trie01.go:106 |
||
| 2300 | CF888G | O(nlognlogU) | 有 | copypasta/trie01.go:123 |
||
| 2400 | CF316G3 | 子串统计类题目 | copypasta/strings.go:1019 |
|||
| 2400 | CF452E | 《后缀自动机及其应用》,张天扬 | find-the-longest-semi-repetitive-substring | copypasta/sam.go:49 |
||
| 2400 | CF601D | 把 (s[i], s[n-1-i]) 插入字典树 | trie 合并 | 有 | copypasta/trie.go:31 |
|
| 2400 | CF710F | 判环可以用 DFS + 三色标记法,见 graph.go 的「有向图的环」 | copypasta/acam.go:49 |
|||
| 2400 | CF710F | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | copypasta/acam.go:76 |
|||
| 2400 | CF822E | 其他 | 有 | copypasta/strings.go:1051 |
||
| 2400 | CF825F | 如果没有循环节,那么返回原串和 1 | 有 | copypasta/strings.go:336 |
||
| 2400 | CF1017E | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | 在循环同构字符串 s 中查找 t,等价于在 s+(s[:n-1]) 中查找 t | shortest-string-that-contains-three-strings | 有 | copypasta/strings.go:268 |
| 2400 | CF1017E | 都转成最小表示,看是否一样 | 有 | copypasta/strings.go:504 |
||
| 2400 | CF1080E | 最长回文子串 Manacher(马拉车算法) | longest-palindromic-substring | 有 | copypasta/strings.go:697 |
|
| 2400 | CF1202E | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | copypasta/acam.go:77 |
|||
| 2400 | CF1526E | 反向问题 | 有 | copypasta/strings.go:1066 |
||
| 2400 | CF1720D2 | 一棵(所有叶节点深度都相同的)二叉树 | 转换 | subarrays-with-xor-at-least-k | 有 | copypasta/trie01.go:27 |
| 2400 | CF1777F | 一棵(所有叶节点深度都相同的)二叉树 | 启发式合并 | subarrays-with-xor-at-least-k | copypasta/trie01.go:28 |
|
| 2400 | CF1777F | roots[i+1] = roots[i].put(v, trieBitLen-1) | todo | copypasta/trie01.go:392 |
||
| 2500 | CF86C | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | copypasta/acam.go:78 |
|||
| 2500 | CF580E | 见 segment_tree.go 中的「区间加等比数列」 | copypasta/strings.go:111 |
|||
| 2500 | CF607C | 特别地,如果要判断两个字符串是否循环同构,可以用最小表示法,做到 O(1) 额外空间 | string-transformation | 有 | copypasta/strings.go:271 |
|
| 2500 | CF696D | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | copypasta/acam.go:79 |
|||
| 2500 | CF778C | 把 (s[i], s[n-1-i]) 插入字典树 | copypasta/trie.go:32 |
|||
| 2500 | CF963D | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | 有 | copypasta/acam.go:80 |
||
| 2500 | CF1562E | O(n^2) 计算 LCP —— 如果你不想用后缀数组的话 | LIS | 有 | copypasta/strings.go:1327 |
|
| 2500 | CF1665E | roots[i+1] = roots[i].put(v, trieBitLen-1) | todo | 有 | copypasta/trie01.go:393 |
|
| 2500 | CF1983F | 一棵(所有叶节点深度都相同的)二叉树 | 有 | copypasta/trie01.go:29 |
||
| 2500 | CF1983F | b ^= 1 | count-pairs-with-xor-in-a-range subarrays-with-xor-at-least-k |
有 | copypasta/trie01.go:250 |
|
| 2600 | CF653F | 子串统计类题目 | copypasta/strings.go:1020 |
|||
| 2600 | CF1051E | 模板题 | DP | 有 | copypasta/strings.go:402 |
|
| 2600 | CF1051E | if l == len(pattern) { | 有 | copypasta/strings.go:465 |
||
| 2600 | CF1312G | 把 (s[i], s[n-1-i]) 插入字典树 | 注:输入就是一个 trie | 有 | copypasta/trie.go:33 |
|
| 2600 | CF1437G | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | copypasta/acam.go:81 |
|||
| 2600 | CF1739F | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | copypasta/acam.go:82 |
|||
| 2600 | CF1827C | 最长回文子串 Manacher(马拉车算法) | longest-palindromic-substring | 有 | copypasta/strings.go:698 |
|
| 2600 | CF1827C | 只考虑偶回文串 | 单调栈 | 有 | copypasta/strings.go:932 |
|
| 2700 | CF235C | 《后缀自动机及其应用》,张天扬 | 循环同构(也可以用后缀数组做) | longest-common-subpath | copypasta/sam.go:47 |
|
| 2700 | CF241B | 一棵(所有叶节点深度都相同的)二叉树 | 求个数以及和 | copypasta/trie01.go:30 |
||
| 2700 | CF241B | b ^= 1 | 求个数以及和 | count-pairs-with-xor-in-a-range subarrays-with-xor-at-least-k |
copypasta/trie01.go:251 |
|
| 2700 | CF1207G | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | copypasta/acam.go:83 |
|||
| 2700 | CF1511F | 把 (s[i], s[n-1-i]) 插入字典树 | 矩阵快速幂优化 DP | 有 | copypasta/trie.go:34 |
|
| 2700 | CF1789F | 子序列自动机 | shortest-impossible-sequence-of-rolls repeated-string-match |
有 | copypasta/strings.go:586 |
|
| 2700 | CF1849F | 一棵(所有叶节点深度都相同的)二叉树 | copypasta/trie01.go:31 |
|||
| 2800 | CF30E | 最长回文子串 Manacher(马拉车算法) | 有 | copypasta/strings.go:699 |
||
| 2800 | CF30E | 只考虑奇回文串 | maximum-product-of-the-length-of-two-palindromic-substrings | 有 | copypasta/strings.go:908 |
|
| 2800 | CF163E | 判环可以用 DFS + 三色标记法,见 graph.go 的「有向图的环」 | 有 | copypasta/acam.go:46 |
||
| 2800 | CF163E | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | 有 | copypasta/acam.go:84 |
||
| 2800 | CF196D | 可以用随机 base 避免被 hack | longest-duplicate-substring strings-differ-by-one-character |
copypasta/strings.go:102 |
||
| 2800 | CF547E | 判环可以用 DFS + 三色标记法,见 graph.go 的「有向图的环」 | string-matching-in-an-array string-matching-in-an-array |
有 | copypasta/acam.go:62 |
|
| 2800 | CF1400F | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | copypasta/acam.go:85 |
|||
| 2800 | CF1654F | 注:这是《挑战》上的实现方案,复杂度 O(nlog^2(n)) | copypasta/strings.go:1281 |
|||
| 2900 | CF17E | 最长回文子串 Manacher(马拉车算法) | 相交的回文子串对数 | 有 | copypasta/strings.go:701 |
|
| 2900 | CF932G | 《字符串算法选讲》-金策 | copypasta/pam.go:27 |
|||
| 2900 | CF1055F | 一棵(所有叶节点深度都相同的)二叉树 | copypasta/trie01.go:32 |
|||
| 3000 | CF1616H | 一棵(所有叶节点深度都相同的)二叉树 | 有 | copypasta/trie01.go:33 |
||
| 3400 | CF1801G | 包含 s[k] 的状态节点一定位于 s[k] 末尾节点的子树内 | copypasta/acam.go:86 |
|||
| 3500 | CF1081H | 最长回文子串 Manacher(马拉车算法) | copypasta/strings.go:702 |
|||
| CF7D | 根据下标转换关系得到子串 s[l:r+1] 在 t 中对应的回文中心下标为 l+r+2 | 有 | copypasta/strings.go:765 |
|||
| CF17E | 回文中心越来越大 | 正难则反,变成 CF159D | 有 | copypasta/strings.go:837 |
||
| CF113B | 注:这题还可以用后缀数组+前缀和二分来做到 O(nlogn) | 有 | copypasta/trie.go:239 |
|||
| CF114D | cnt++ | 用到的 node 个数尽量多 | copypasta/trie.go:255 |
|||
| CF159D | 最长回文子串 Manacher(马拉车算法) | 同 17E 思考:改成选 k 个怎么做 | 有 | copypasta/strings.go:700 |
||
| CF159D | 回文中心越来越大 | 有 | copypasta/strings.go:836 |
|||
| CF271D | 带限制的不同子串个数 | 有 | copypasta/strings.go:1005 |
|||
| CF271D | 做法是插入每个后缀,统计节点数。但题目往往会带上额外的条件 | 有 | copypasta/trie.go:237 |
|||
| CF427D | 单调栈 | 有 | copypasta/strings.go:1043 |
|||
| CF432D | 注:字符串倒过来就是每个后缀的出现次数 | 有 | copypasta/strings.go:410 |
|||
| CF496B | 看代码,如果 s[i+k] < s[j+k],那么我们排除 | 非暴力做法 | 有 | copypasta/strings.go:501 |
||
| CF514C | 可以用随机 base 避免被 hack | construct-string-with-minimum-cost | 有 | copypasta/strings.go:92 |
||
| CF547E | 如果我们既知道前缀信息(trie),又知道后缀信息(fail),就可以做字符串匹配: | 来理解 | 有 | copypasta/acam.go:18 |
||
| CF557E | 回文串:中心扩展法 | palindromic-substrings maximum-number-of-non-overlapping-palindrome-substrings |
有 | copypasta/strings.go:656 |
||
| CF557E | !需要保证 trie 中至少有 k+1 个字符串 | 有 | copypasta/trie.go:176 |
|||
| CF611D | rj+1 是因为 query 是左闭右开 | 有 | copypasta/strings.go:1148 |
|||
| CF822E | 注:若允许离线可以用 Trie+Tarjan 做到线性 | 有 | copypasta/strings.go:1131 |
|||
| CF835D | 根据下标转换关系得到子串 s[l:r+1] 在 t 中对应的回文中心下标为 l+r+2 | 有 | copypasta/strings.go:766 |
|||
| CF873F | LCP 性质及其证明 | longest-common-prefix-of-k-strings-after-removal | 有 | copypasta/strings.go:29 |
||
| CF873F | 由于 height 数组的性质,可以和二分/单调栈/单调队列结合 | 有 | copypasta/strings.go:1105 |
|||
| CF1200E | 可以用随机 base 避免被 hack | construct-string-with-minimum-cost | 有 | copypasta/strings.go:93 |
||
| CF1269B | a 复制 k 或 k+1 份,k=(len(b)-1)/len(a)+1 | ~1800 做到 O(nlogn) | shortest-palindrome distinct-echo-substrings |
有 | copypasta/strings.go:255 |
|
| CF1326D2 | 根据下标转换关系得到子串 s[l:r+1] 在 t 中对应的回文中心下标为 l+r+2 | 有 | copypasta/strings.go:764 |
|||
| CF1418G | 可以用随机 base 避免被 hack | 有 | copypasta/strings.go:87 |
|||
| CF1437G | 广义 SAM | copypasta/sam.go:290 |
||||
| CF1800D | 可以用随机 base 避免被 hack | construct-string-with-minimum-cost count-prefix-and-suffix-pairs-ii |
有 | copypasta/strings.go:95 |
||
| CF1823D | 本质不同回文串 | https://codeforces.com/blog/entry/115465 | copypasta/strings.go:32 |
|||
| CF1827C | 回文中心越来越大 | 有 | copypasta/strings.go:830 |
|||
| CFEDU-A | 模板题 | Codeforces EDU | copypasta/strings.go:394 |
|||
| CFEDU-A | 本质不同子串个数 | Codeforces EDU | copypasta/strings.go:997 |
|||
| CFEDU-B | 模板题 | Codeforces EDU | copypasta/strings.go:404 |
|||
| CFEDU-B | 两个字符串 | Codeforces EDU | copypasta/strings.go:1038 |
|||
| CFEDU-C | 即 strings.Index(s+s, t) | Codeforces EDU | copypasta/strings.go:406 |
|||
| CFEDU-C | rj+1 是因为 query 是左闭右开 | Codeforces EDU | copypasta/strings.go:1147 |
|||
| CFEDU-D | 时间复杂度 O(n)。 | Codeforces EDU | copypasta/strings.go:426 |
|||
| CFEDU-D | 子串统计类题目 | Codeforces EDU | copypasta/strings.go:1017 |
|||
| CFEDU-D | 由于 height 数组的性质,可以和二分/单调栈/单调队列结合 | Codeforces EDU | copypasta/strings.go:1103 |
|||
| CFEDU-E | 构造 s+reverse(s) | Codeforces EDU | copypasta/strings.go:428 |
|||
| CFEDU-E | 由于 height 数组的性质,可以和二分/单调栈/单调队列结合 | Codeforces EDU | copypasta/strings.go:1104 |
|||
| CFEDU-F | 构造 t+s | Codeforces EDU | copypasta/strings.go:430 |
|||
| CFEDU-F | 重复次数最多的连续重复子串 | Codeforces EDU | copypasta/strings.go:1008 |
|||
| CFEDU-H | 不同子串长度之和 | Codeforces EDU | copypasta/strings.go:1002 |
|||
| CF101628K | 见 bst.go 中的 prev 和 next | 有 | copypasta/trie.go:206 |
|||
| CF101628K | 此时 o.endCnt 保存子树字符串个数 | 有 | copypasta/trie.go:222 |
|||
| CF103409J | 所有子串排序拼起来的第 k 个字母 todo | 子串去重后再拼接,先按照长度排序再按照字典序 | copypasta/strings.go:1033 |
|||
| CF103585K | 看代码,如果 s[i+k] < s[j+k],那么我们排除 | copypasta/strings.go:500 |
||||
| CF104787C | 《字符串算法选讲》-金策 | palindrome-partitioning-iv | copypasta/pam.go:30 |
搜索
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1400 | CF550B | 子集(也可以用二进制枚举做) | copypasta/search.go:12 |
|||
| 1400 | CF962C | 子集(也可以用二进制枚举做) | 有 | copypasta/search.go:13 |
||
| 1600 | CF1778C | 组合 | 也可以二进制枚举子集 | 有 | copypasta/search.go:16 |
|
| 2100 | CF525E | 折半枚举/双向搜索 Meet in the middle | 有 | copypasta/search.go:763 |
||
| 2100 | CF1006F | 折半枚举/双向搜索 Meet in the middle | 有 | copypasta/search.go:764 |
||
| 2200 | CF954I | 见下面的 partitionSet | 有 | copypasta/search.go:26 |
||
| 2200 | CF954I | 写法二:记录每个下标所属集合(的编号) | 有 | copypasta/search.go:739 |
||
| 2300 | CF327E | 折半枚举/双向搜索 Meet in the middle | 有 | copypasta/search.go:765 |
||
| 2300 | CF429C | 暴搜 | combination-sum | copypasta/search.go:32 |
||
| 2300 | CF628E | 第一排在左上,最后一排在右下 | diagonal-traverse longest-line-of-consecutive-one-in-matrix |
有 | copypasta/search.go:1227 |
|
| 2300 | CF1132E | 暴搜 | 背包 | combination-sum | copypasta/search.go:33 |
|
| 2400 | CF31E | 折半枚举/双向搜索 Meet in the middle | 也可以 DP | 有 | copypasta/search.go:766 |
|
| 2400 | CF58E | 暴搜 | combination-sum | copypasta/search.go:34 |
||
| 2400 | CF534F | 折半枚举/双向搜索 Meet in the middle | 打印方案 | copypasta/search.go:767 |
||
| 2400 | CF912E | 折半枚举/双向搜索 Meet in the middle | 有 | copypasta/search.go:768 |
||
| 2400 | CF1443E | 返回 [1,2,…,n] 的字典序第 k 小的排列,k 从 1 开始 | permutation-sequence | 有 | copypasta/search.go:670 |
|
| 2500 | CF68D | 最优性剪枝 | 有 | copypasta/search.go:42 |
||
| CF120H | 生成字符串 s 的所有长度至多为 m 的非空子串(去重,按字典序返回) | 有 | copypasta/search.go:402 |
|||
| CF459C | 指数型,即 n 层循环 | 有 | copypasta/search.go:100 |
|||
| CF910C | Permute the values at index i to len(arr)-1. | 有 | copypasta/search.go:583 |
|||
| CF954F | 一些结论 | 有 | copypasta/search.go:95 |
|||
| CF1276C | 例如 | 有 | copypasta/search.go:1246 |
|||
| CF1443E | 结合康托展开和逆康托展开,可以求出一个排列的下 k 个排列 | find-the-index-of-permutation minimum-number-of-operations-to-make-string-sorted |
有 | copypasta/search.go:632 |
位运算
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1100 | CF1682B | a - b <= a XOR b <= a + b | 交换 排序 | 有 | copypasta/bits.go:72 |
|
| 1100 | CF1957B | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 有 | copypasta/bits.go:45 |
||
| 1100 | CF1991B | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 有 | copypasta/bits.go:46 |
||
| 1100 | CF2074C | 基础题 | 有 | copypasta/bits.go:38 |
||
| 1100 | CF2162C | a - b <= a XOR b <= a + b | 有 | copypasta/bits.go:73 |
||
| 1200 | CF1420B | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | XOR | 有 | copypasta/bits.go:47 |
|
| 1200 | CF1420B | XOR with AND | 有 | copypasta/bits.go:97 |
||
| 1200 | CF1909B | 基础题 | 有 | copypasta/bits.go:40 |
||
| 1200 | CF2039C1 | a - b <= a XOR b <= a + b | 有 | copypasta/bits.go:74 |
||
| 1200 | CF2094E | 这里 ^2 表示子数组中任意两个数的异或 | bitwise-or-of-all-subsequence-sums | 有 | copypasta/bits.go:128 |
|
| 1300 | CF1601A | 这里 ^2 表示子数组中任意两个数的异或 | bitwise-or-of-all-subsequence-sums | 有 | copypasta/bits.go:129 |
|
| 1300 | CF1775B | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 有 | copypasta/bits.go:48 |
||
| 1300 | CF1973B | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 有 | copypasta/bits.go:50 |
||
| 1300 | CF1981B | [l, r] 的区间 OR | copypasta/bits.go:466 |
|||
| 1300 | CF1988C | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 严格递增序列,满足 a[i] | a[i+1] = n | 有 | copypasta/bits.go:51 |
|
| 1300 | CF2108B | a - b <= a XOR b <= a + b | 构造 异或和为 x | 有 | copypasta/bits.go:75 |
|
| 1300 | CF2118C | 这里 ^2 表示子数组中任意两个数的异或 | bitwise-or-of-all-subsequence-sums | 有 | copypasta/bits.go:130 |
|
| 1300 | CF2179D | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 构造排列,使 AND 前缀的 popcount 之和最大 | 有 | copypasta/bits.go:49 |
|
| 1400 | CF1362C | 这里 ^2 表示子数组中任意两个数的异或 | 有 | copypasta/bits.go:131 |
||
| 1400 | CF1513B | 这里 ^2 表示子数组中任意两个数的异或 | 有 | copypasta/bits.go:132 |
||
| 1400 | CF1790E | ones(x^y) % 2 = (ones(x) + ones(y)) % 2 | 有 | copypasta/bits.go:188 |
||
| 1400 | CF1878E | logTrick 的简单版本 · 其一 | (难度分低是因为有其他做法) | shortest-subarray-with-or-at-least-k-ii | 有 | copypasta/bits.go:553 |
| 1400 | CF1878E | 做法见下面的 logTrickCnt | (见下面的 logTrickCnt) 也有其他做法 | minimum-sum-of-values-by-dividing-array number-of-subarrays-with-and-value-of-k |
有 | copypasta/bits.go:690 |
| 1400 | CF1878E | 甚至还可以做到把每个运算结果对应的每个区间长度的出现次数求出来(需要差分) | shortest-subarray-with-or-at-least-k-ii minimum-sum-of-values-by-dividing-array |
有 | copypasta/bits.go:729 |
|
| 1400 | CF1918C | 试填法 | 有 | copypasta/bits.go:160 |
||
| 1400 | CF2020C | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 有 | copypasta/bits.go:52 |
||
| 1400 | CF2035C | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 排列 &|&|&|… 结果最大 | 有 | copypasta/bits.go:53 |
|
| 1400 | CF2171C2 | a - b <= a XOR b <= a + b | 有 | copypasta/bits.go:76 |
||
| 1500 | CF891A | 做法见下面的 logTrickCnt | minimum-number-of-operations-to-make-all-array-elements-equal-to-1 maximum-gcd-sum-of-a-subarray |
有 | copypasta/bits.go:697 |
|
| 1500 | CF1299A | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 有 | copypasta/bits.go:54 |
||
| 1500 | CF1362C | a(n) = a(floor(n/2)) + n | 有 | copypasta/bits.go:264 |
||
| 1500 | CF1614C | ^ 表示异或和 | sum-of-all-subset-xor-totals | 有 | copypasta/bits.go:119 |
|
| 1500 | CF1722G | 构造 | copypasta/bits.go:229 |
|||
| 1500 | CF2053C | 基础题 | 做到 O(1) 时间 | 有 | copypasta/bits.go:41 |
|
| 1500 | CF2057C | a - b <= a XOR b <= a + b | 构造 可以做到 O(1) | 有 | copypasta/bits.go:77 |
|
| 1500 | CF2146D1 | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 有 | copypasta/bits.go:55 |
||
| 1500 | CF2225D | 支持 n = -1 的情况,此时返回 0 | xor-operation-in-an-array xor-operation-in-an-array |
有 | copypasta/bits.go:475 |
|
| 1600 | CF243A | 空间复杂度:O(logU),返回值不计入 | bitwise-ors-of-subarrays | 有 | copypasta/bits.go:678 |
|
| 1600 | CF1775C | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 连续数字 AND 等于目标值 | 有 | copypasta/bits.go:56 |
|
| 1600 | CF2036E | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | copypasta/bits.go:57 |
|||
| 1600 | CF2085C | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 构造 k,使得 (x+k) AND (y+k) = 0 | 有 | copypasta/bits.go:58 |
|
| 1700 | CF76D | ones(x^y) % 2 = (ones(x) + ones(y)) % 2 | 有 | copypasta/bits.go:189 |
||
| 1700 | CF627A | ones(x^y) % 2 = (ones(x) + ones(y)) % 2 | 有 | copypasta/bits.go:190 |
||
| 1700 | CF1325D | ones(x^y) % 2 = (ones(x) + ones(y)) % 2 | 有 | copypasta/bits.go:191 |
||
| 1700 | CF1368D | ones(x^y) % 2 = (ones(x) + ones(y)) % 2 | 有 | copypasta/bits.go:192 |
||
| 1700 | CF1879D | 这里 ^2 表示子数组中任意两个数的异或 | sum(子数组异或和*子数组长度) | 有 | copypasta/bits.go:133 |
|
| 1700 | CF1903D1 | 试填法 | 这题抄袭 arc146_b 题 | 有 | copypasta/bits.go:161 |
|
| 1800 | CF1556D | ones(x^y) % 2 = (ones(x) + ones(y)) % 2 | 有 | copypasta/bits.go:193 |
||
| 1800 | CF1955F | a - b <= a XOR b <= a + b | 有 | copypasta/bits.go:78 |
||
| 1800 | CF1968F | a - b <= a XOR b <= a + b | 有 | copypasta/bits.go:79 |
||
| 1800 | CF2039C2 | a - b <= a XOR b <= a + b | 有 | copypasta/bits.go:80 |
||
| 1900 | CF309C | 思维题(贪心、脑筋急转弯等) | minimum-operations-to-form-subsequence-with-target-sum | 有 | copypasta/bits.go:205 |
|
| 1900 | CF894C | 做法见下面的 logTrickCnt | 已知所有 GCD 还原数组 a | maximum-gcd-sum-of-a-subarray | 有 | copypasta/bits.go:700 |
| 1900 | CF981D | 这里 ^2 表示子数组中任意两个数的异或 | 有 | copypasta/bits.go:134 |
||
| 1900 | CF1895D | a - b <= a XOR b <= a + b | 有 | copypasta/bits.go:81 |
||
| 1900 | CF1895D | 这里 ^2 表示子数组中任意两个数的异或 | 有 | copypasta/bits.go:135 |
||
| 1900 | CF1946D | XOR with OR | copypasta/bits.go:101 |
|||
| 1900 | CF1991D | a - b <= a XOR b <= a + b | 有 | copypasta/bits.go:82 |
||
| 1900 | CF2036F | a - b <= a XOR b <= a + b | copypasta/bits.go:83 |
|||
| 1900 | CF2180C | a - b <= a XOR b <= a + b | 构造 XOR(a) = n 且 sum(a) 尽量大 | 有 | copypasta/bits.go:84 |
|
| 2000 | CF15C | 支持 n = -1 的情况,此时返回 0 | xor-operation-in-an-array xor-operation-in-an-array |
有 | copypasta/bits.go:476 |
|
| 2000 | CF475D | 注:效率不如 logTrickCnt | 有 | copypasta/bits.go:646 |
||
| 2000 | CF475D | 做法见下面的 logTrickCnt | (见下面的 logTrickCnt) | minimum-number-of-operations-to-make-all-array-elements-equal-to-1 maximum-gcd-sum-of-a-subarray |
有 | copypasta/bits.go:698 |
| 2000 | CF475D | 甚至还可以做到把每个运算结果对应的每个区间长度的出现次数求出来(需要差分) | shortest-subarray-with-or-at-least-k-ii minimum-sum-of-values-by-dividing-array |
有 | copypasta/bits.go:730 |
|
| 2000 | CF1088D | a - b <= a XOR b <= a + b | 交互 | 有 | copypasta/bits.go:85 |
|
| 2000 | CF1416C | 试填法 | 有 | copypasta/bits.go:162 |
||
| 2000 | CF1632D | cnt[opRes] += c | () 用 logTrickCnt 写起来更简单 | 有 | copypasta/bits.go:669 |
|
| 2000 | CF1632D | 做法见下面的 logTrickCnt | (见下面的 logTrickCnt) | minimum-number-of-operations-to-make-all-array-elements-equal-to-1 maximum-gcd-sum-of-a-subarray |
有 | copypasta/bits.go:699 |
| 2000 | CF1632D | 甚至还可以做到把每个运算结果对应的每个区间长度的出现次数求出来(需要差分) | shortest-subarray-with-or-at-least-k-ii minimum-sum-of-values-by-dividing-array |
有 | copypasta/bits.go:732 |
|
| 2000 | CF1872G | 注:根据以上推导过程,我们还可以得出总的答案个数至多为 O(nlog(sum(a))) | 有 | copypasta/bits.go:797 |
||
| 2000 | CF1994E | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 有 | copypasta/bits.go:59 |
||
| 2000 | CF2075D | max(x,y) 的二进制长度 - x^y 的二进制长度 | 有 | copypasta/bits.go:447 |
||
| 2000 | CF2146D2 | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 有 | copypasta/bits.go:60 |
||
| 2000 | CF2165C | 思维题(贪心、脑筋急转弯等) | minimum-operations-to-form-subsequence-with-target-sum | 有 | copypasta/bits.go:206 |
|
| 2100 | CF703D | a - b <= a XOR b <= a + b | 有 | copypasta/bits.go:86 |
||
| 2100 | CF1322B | 加法拆位(进位拆位):涉及到加法进位的题目,可以按照 mod 2^k 拆位 | 有 | copypasta/bits.go:153 |
||
| 2100 | CF1732C2 | ones(x^y) % 2 = (ones(x) + ones(y)) % 2 | + 与 ^ | 有 | copypasta/bits.go:194 |
|
| 2100 | CF1934D1 | 在此基础上 XOR 区间去重后的元素异或和 = 区间中出现次数为【偶数】的元素异或和 | 有 | copypasta/bits.go:89 |
||
| 2200 | CF875D | 甚至还可以做到把每个运算结果对应的每个区间长度的出现次数求出来(需要差分) | 与单调栈结合 | shortest-subarray-with-or-at-least-k-ii minimum-sum-of-values-by-dividing-array |
有 | copypasta/bits.go:733 |
| 2200 | CF1615D | 在此基础上 XOR 区间去重后的元素异或和 = 区间中出现次数为【偶数】的元素异或和 | copypasta/bits.go:90 |
|||
| 2200 | CF2013E | 做法见下面的 logTrickCnt | 巧妙转换 | 有 | copypasta/bits.go:702 |
|
| 2300 | CF1614D2 | 做法见下面的 logTrickCnt | maximum-gcd-sum-of-a-subarray | copypasta/bits.go:701 |
||
| 2300 | CF1834E | 做法见下面的 logTrickCnt | number-of-subarrays-with-lcm-equal-to-k | 有 | copypasta/bits.go:706 |
|
| 2400 | CF835E | 在此基础上 XOR 区间去重后的元素异或和 = 区间中出现次数为【偶数】的元素异或和 | 交互 | 有 | copypasta/bits.go:91 |
|
| 2400 | CF1592E | XOR with AND | 子数组 AND > 子数组 XOR 的最长子数组 | 有 | copypasta/bits.go:98 |
|
| 2400 | CF1777F | 这里 ^2 表示子数组中任意两个数的异或 | copypasta/bits.go:136 |
|||
| 2400 | CF1874B | 加法拆位(进位拆位):涉及到加法进位的题目,可以按照 mod 2^k 拆位 | 有 | copypasta/bits.go:155 |
||
| 2400 | CF1935E | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 从高到低 | 有 | copypasta/bits.go:61 |
|
| 2400 | CF2005D | 甚至还可以做到把每个运算结果对应的每个区间长度的出现次数求出来(需要差分) | 双序列 前后缀分解 | minimum-sum-of-values-by-dividing-array | 有 | copypasta/bits.go:734 |
| 2500 | CF1665E | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 两数 OR 的最小值:只需要知道区间内最小的 bits.Len(U) + 1 个数 | 有 | copypasta/bits.go:62 |
|
| 2500 | CF1710C | 在此基础上 XOR 区间去重后的元素异或和 = 区间中出现次数为【偶数】的元素异或和 | 三角形三边 | 有 | copypasta/bits.go:92 |
|
| 2500 | CF1779F | 在此基础上 XOR 区间去重后的元素异或和 = 区间中出现次数为【偶数】的元素异或和 | 操作至多 2n 次:把一棵子树的所有点权都置为 S,其中 S 是子树点权异或和 | 有 | copypasta/bits.go:93 |
|
| 2600 | CF1004F | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 有 | copypasta/bits.go:63 |
||
| 2600 | CF1004F | 空间复杂度:O(logU),返回值不计入 | 线段树 merge | shortest-subarray-with-or-at-least-k-ii find-subarray-with-bitwise-or-closest-to-k |
有 | copypasta/bits.go:682 |
| 2600 | CF1815D | ones(x^y) % 2 = (ones(x) + ones(y)) % 2 | 有 | copypasta/bits.go:196 |
||
| 2600 | CF1945H | & 和 | 在区间求和上具有单调性(本页面搜索 logTrickCnt) | 分类暴力 | 有 | copypasta/bits.go:64 |
|
| CF276D | 复杂度 O(log(high)) | 有 | copypasta/bits.go:862 |
|||
| CF460D | 异或和相关 | 有 | copypasta/bits.go:271 |
|||
| CF460D | 找三个不同的在 [l,r] 范围内的数,其异或和为 0 | 有 | copypasta/bits.go:845 |
|||
| CF691B | 位运算与字符串 | number-of-changing-keys lexicographically-minimum-string-after-removing-stars |
有 | copypasta/bits.go:213 |
||
| CF817C | 十进制 digsum | 有 | copypasta/bits.go:333 |
|||
| CF925C | 二进制字符串 | 有 | copypasta/bits.go:394 |
|||
| CF1027E | 构造 2^n-1,即 n 个 1 的另一种方法: ^(-1<<n) | 有 | copypasta/bits.go:240 |
|||
| CF1373E | (n%9+1) * int(math.Pow10(n/9)) - 1 | 有 | copypasta/bits.go:348 |
|||
| CF1415D | 二进制字符串 | 有 | copypasta/bits.go:393 |
|||
| CF1469E | 二进制字符串 | 有 | copypasta/bits.go:391 |
|||
| CF1493E | 异或和相关 | 有 | copypasta/bits.go:270 |
|||
| CF1554C | 异或与 mex | 有 | copypasta/bits.go:283 |
|||
| CF1554C | 返回最小的非负 x,其满足 n^x >= m | 有 | copypasta/bits.go:532 |
|||
| CF1617E | 构造 2^n-1,即 n 个 1 的另一种方法: ^(-1<<n) | concatenation-of-consecutive-binary-numbers | 有 | copypasta/bits.go:249 |
||
| CF1689E | 利用 lowbit | 有 | copypasta/bits.go:104 |
|||
| CF1709E | 人为地创造出「相等」这个条件 | 有 | copypasta/bits.go:291 |
|||
| CF1720D2 | 人为地创造出「相等」这个条件 | 有 | copypasta/bits.go:289 |
|||
| CF1761D | 集合论公式的二进制等价形式: | number-of-excellent-pairs | copypasta/bits.go:173 |
|||
| CF1780D | 利用 lowbit | 有 | copypasta/bits.go:105 |
|||
| CF1901C | max(x,y) 的二进制长度 - x^y 的二进制长度 | 有 | copypasta/bits.go:442 |
|||
| CF1907B | 位运算与字符串 | number-of-changing-keys lexicographically-minimum-string-after-removing-stars |
有 | copypasta/bits.go:214 |
||
| CF1918C | 思维题(贪心、脑筋急转弯等) | minimum-operations-to-form-subsequence-with-target-sum | 有 | copypasta/bits.go:204 |
||
| CFEDU-G | 做法见下面的 logTrickCnt | Codeforces EDU | copypasta/bits.go:696 |
基础算法
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1300 | CF600B | ### 二分查找 | 有 | copypasta/sort.go:30 |
||
| 1300 | CF1003C | 有长度限制的连续子段的(最大/最小)算数平均值 | 有 | copypasta/sort.go:618 |
||
| 1300 | CF1538C | ### 二分查找 | 有 | copypasta/sort.go:31 |
||
| 1400 | CF604B | ### 二分答案:求最小 | 也有 O(n) 做法 | 有 | copypasta/sort.go:40 |
|
| 1400 | CF1201C | ### 最大化中位数 | 也可以贪心做 | 有 | copypasta/sort.go:101 |
|
| 1400 | CF1701C | ### 二分答案:求最小 | 有 | copypasta/sort.go:41 |
||
| 1400 | CF1840D | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:76 |
||
| 1500 | CF165B | ### 二分查找 | 有 | copypasta/sort.go:32 |
||
| 1500 | CF670D2 | ### 二分答案:求最大 | 有 | copypasta/sort.go:53 |
||
| 1500 | CF760B | ### 二分答案:求最大 | 有 | copypasta/sort.go:54 |
||
| 1500 | CF812C | ### 二分答案:求最大 | 同时记录一个副产物 | 有 | copypasta/sort.go:55 |
|
| 1500 | CF991C | ### 二分答案:求最小 | 有 | copypasta/sort.go:42 |
||
| 1500 | CF1208B | ### 二分答案:求最小 | 有 | copypasta/sort.go:43 |
||
| 1500 | CF1301B | 比较两个三分点值的大小,每次去掉 1/3 的区间 | 不用三分也可以 | 有 | copypasta/sort.go:568 |
|
| 1500 | CF1971E | ### 二分查找 | 有 | copypasta/sort.go:33 |
||
| 1500 | CF2070C | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:77 |
||
| 1600 | CF1610C | ### 二分答案:求最大 | 有 | copypasta/sort.go:56 |
||
| 1600 | CF1623C | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:87 |
||
| 1600 | CF1665C | ### 二分答案:求最小 | 有 | copypasta/sort.go:44 |
||
| 1600 | CF1707A | ### 不好想到的二分(这也能二分?!) | 有 | copypasta/sort.go:118 |
||
| 1600 | CF1843E | ### 二分答案:求最小 | 有 | copypasta/sort.go:45 |
||
| 1600 | CF1856C | ### 二分答案:求最大 | 也可以不用二分 | 有 | copypasta/sort.go:57 |
|
| 1600 | CF1946C | ### 二分答案:求最大 | 有 | copypasta/sort.go:58 |
||
| 1600 | CF2167E | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:88 |
||
| 1700 | CF460C | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:89 |
||
| 1700 | CF1118D2 | ### 二分答案:求最小 | 有 | copypasta/sort.go:46 |
||
| 1700 | CF1792D | ### 二分查找 | 有 | copypasta/sort.go:34 |
||
| 1700 | CF1945E | 测试一下,你有没有学到二分的本质? | copypasta/sort.go:22 |
|||
| 1700 | CF1983D | 做法:离散化后求置换环 | minimum-number-of-operations-to-sort-a-binary-tree-by-level | 有 | copypasta/sort.go:269 |
|
| 1700 | CF1999G2 | 测试一下,你有没有学到二分的本质? | 有 | copypasta/sort.go:23 |
||
| 1700 | CF2110D | ### 二分答案:求最小 | 也有 O(n+m) 做法 | 有 | copypasta/sort.go:47 |
|
| 1800 | CF645D | ### 二分答案:求最小 | 也有 O(n) 做法 | 有 | copypasta/sort.go:48 |
|
| 1800 | CF799C | ### 二分查找 | 有 | copypasta/sort.go:35 |
||
| 1800 | CF1073C | ### 二分答案:求最小 | 有 | copypasta/sort.go:49 |
||
| 1900 | CF883I | 好比用一个盖子去压住最大值,让最大值尽量小 | DP | 有 | copypasta/sort.go:78 |
|
| 1900 | CF1260D | ### 二分答案:求最大 | 区间合并 | 有 | copypasta/sort.go:59 |
|
| 1900 | CF1354D | 算法一:排序后二分中位数,copy 数组两侧搞 nthElement | 隐藏的二分 | 有 | copypasta/sort.go:138 |
|
| 1900 | CF1697D | 算法一:排序后二分中位数,copy 数组两侧搞 nthElement | 有 | copypasta/sort.go:136 |
||
| 1900 | CF1918D | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:79 |
||
| 1900 | CF1996F | ### 二分答案:求最大 | 二分间接值 | 有 | copypasta/sort.go:60 |
|
| 2000 | CF1624F | 测试一下,你有没有学到二分的本质? | 有 | copypasta/sort.go:24 |
||
| 2000 | CF1744F | ## 性质 | 有 | copypasta/mex.go:8 |
||
| 2100 | CF1355E | 比较两个三分点值的大小,每次去掉 1/3 的区间 | 有 | copypasta/sort.go:569 |
||
| 2100 | CF2008H | ### 最小化中位数 | 有 | copypasta/sort.go:98 |
||
| 2100 | CF2037F | ### 二分答案:求最小 | 有 | copypasta/sort.go:50 |
||
| 2100 | CF2038B | 为了保证任意情况都能更新答案,需要把上界加一 | copypasta/sort.go:69 |
|||
| 2100 | CF2046C | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:90 |
||
| 2200 | CF1181D | 算法一:排序后二分中位数,copy 数组两侧搞 nthElement | 转换的好题 | 有 | copypasta/sort.go:139 |
|
| 2200 | CF1993D | ### 最大化中位数 | copypasta/sort.go:102 |
|||
| 2300 | CF489E | 其他题目 | 与 DP 结合 | 有 | copypasta/sort.go:651 |
|
| 2400 | CF605C | NOTE: 多个下凸函数的乘积仍然是下凸函数;上凸同理 ABC130F | 有 | copypasta/sort.go:538 |
||
| 2400 | CF626E | 比较两个三分点值的大小,每次去掉 1/3 的区间 | 最大化平均值减中位数 | 有 | copypasta/sort.go:570 |
|
| 2400 | CF912E | 第 k 大等价于:求最大的 x,满足 >= x 的数至少有 k 个(k 从 1 开始) | 有 | copypasta/sort.go:107 |
||
| 2400 | CF1436E | ## 性质 | 有 | copypasta/mex.go:9 |
||
| 2400 | CF1527D | ## 性质 | 有 | copypasta/mex.go:10 |
||
| 2400 | CF1837F | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:80 |
||
| 2500 | CF314D | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:81 |
||
| 2500 | CF993D | 其他题目 | copypasta/sort.go:652 |
|||
| 2500 | CF1550E | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:91 |
||
| 2500 | CF1983F | 第 k 大等价于:求最大的 x,满足 >= x 的数至少有 k 个(k 从 1 开始) | 有 | copypasta/sort.go:108 |
||
| 2600 | CF627D | 好比用一个盖子去压住最大值,让最大值尽量小 | 有 | copypasta/sort.go:92 |
||
| 2600 | CF875E | 好比用一个盖子去压住最大值,让最大值尽量小 | copypasta/sort.go:82 |
|||
| 2900 | CF505E | 好比用一个盖子去压住最大值,让最大值尽量小 | todo 回顾思路 | 有 | copypasta/sort.go:83 |
|
| 3200 | CF1446F | 第 k 大等价于:求最大的 x,满足 >= x 的数至少有 k 个(k 从 1 开始) | copypasta/sort.go:109 |
|||
| CF266C | sort.Sort(r) | 有 | copypasta/sort.go:168 |
|||
| CF578C | 如果返回结果不是答案的话,注意误差对答案的影响 | 有 | copypasta/sort.go:506 |
|||
| CF653D | 如果返回结果不是答案的话,注意误差对答案的影响 | 有 | copypasta/sort.go:507 |
|||
| CF1100E | 为了保证能至少触发一次 true,某些情况下需要将二分上界 +1 | 有 | copypasta/sort.go:359 |
|||
| CF1817A | 在多个左闭右开区间中,查找与 [l,r) 有交集的所有区间 | 有 | copypasta/sort.go:246 |
|||
| CFEDU-A | 实数二分 | Codeforces EDU | copypasta/sort.go:514 |
|||
| CFEDU-A | 有长度限制的连续子段的(最大/最小)算数平均值 | Codeforces EDU | copypasta/sort.go:617 |
|||
| CFEDU-B | 最优比率路径 | Codeforces EDU | copypasta/sort.go:647 |
|||
| CFEDU-C | 分数规划 | Codeforces EDU | copypasta/sort.go:612 |
|||
| CFEDU-D | NOTE: l 和 r 最好稍微往左右取宽点,从而保证触发相关逻辑 | Codeforces EDU | copypasta/sort.go:510 |
|||
| CF101234G | 算法一:排序后二分中位数,copy 数组两侧搞 nthElement | https://leetcode.cn/problems/find-the-k-sum-of-an-array/ | find-the-k-sum-of-an-array | copypasta/sort.go:141 |
||
| CF101234G | 除了二分,另一种求法是使用最小堆 | copypasta/sort.go:481 |
离线算法
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 2200 | CF1906F | 点评:不错的题目,也有在线做法(线段树二分、单调栈+倍增等),可以把很多算法串起来 | minimum-interval-to-include-each-query checking-existence-of-edge-length-limited-paths |
有 | copypasta/offline.go:14 |
|
| 2900 | CF1028H | 点评:不错的题目,也有在线做法(线段树二分、单调栈+倍增等),可以把很多算法串起来 | 思路类似 HH 的项链,但更加复杂 | minimum-interval-to-include-each-query checking-existence-of-edge-length-limited-paths |
有 | copypasta/offline.go:15 |
模拟与构造
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1400 | CF799B | 小模拟 | 有序集合/最小堆 | design-video-sharing-platform candy-crush |
copypasta/implementation.go:10 |
|
| 1600 | CF1774D | 小模拟 | 交换 0 1 使得每行 1 的个数都一样 | design-video-sharing-platform candy-crush |
有 | copypasta/implementation.go:11 |
| 1900 | CF1974F | 小模拟 | design-video-sharing-platform candy-crush |
有 | copypasta/implementation.go:12 |
|
| 1900 | CF2064D | 小模拟 | design-video-sharing-platform candy-crush |
有 | copypasta/implementation.go:13 |
|
| 2000 | CF899E | 小模拟 | 三种数据结构(做法不止一种) | design-video-sharing-platform candy-crush |
有 | copypasta/implementation.go:14 |
| 2200 | CF2009G2 | 有较多下标参与运算的题目 | 有 | copypasta/implementation.go:20 |
通用思维与技巧
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1000 | CF688B | 按顺序从小到大生成所有回文数 | find-the-count-of-good-integers find-the-closest-palindrome |
有 | copypasta/common.go:1205 |
|
| 1000 | CF862A | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:726 |
||
| 1000 | CF1174A | 构造 constructive algorithms | 有 | copypasta/common.go:583 |
||
| 1000 | CF1333A | 思维:脑筋急转弯 | 有 | copypasta/common.go:526 |
||
| 1000 | CF1333A | 构造 constructive algorithms | 脑筋急转弯 | 有 | copypasta/common.go:584 |
|
| 1000 | CF1469A | 合法括号字符串(Regular Bracket Sequence, RBS) | 有 | copypasta/common.go:910 |
||
| 1000 | CF1550B | 贪心(证明算法的正确性比算法难) | split-array-into-consecutive-subsequences minimum-number-of-moves-to-make-palindrome |
有 | copypasta/common.go:322 |
|
| 1000 | CF1550B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:727 |
||
| 1000 | CF1632B | 思维:脑筋急转弯 | 位运算 XOR | 有 | copypasta/common.go:527 |
|
| 1000 | CF1772C | 构造 constructive algorithms | 差分数组不同元素个数尽量多 | 有 | copypasta/common.go:585 |
|
| 1000 | CF1931C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:728 |
||
| 1000 | CF1998B | 构造 constructive algorithms | 有 | copypasta/common.go:586 |
||
| 1000 | CF2037C | 构造 constructive algorithms | 有 | copypasta/common.go:587 |
||
| 1000 | CF2039B | 构造 constructive algorithms | 分析性质 | 有 | copypasta/common.go:588 |
|
| 1000 | CF2039B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:729 |
||
| 1000 | CF2040B | 构造 constructive algorithms | 有 | copypasta/common.go:589 |
||
| 1100 | CF296A | 或者说,每次删除两个不同元素,最多能删多少次? | 有 | copypasta/common.go:438 |
||
| 1100 | CF1574B | 或者说,每次删除两个不同元素,最多能删多少次? | 有 | copypasta/common.go:439 |
||
| 1100 | CF1637B | 思维:脑筋急转弯 | copypasta/common.go:528 |
|||
| 1100 | CF1638B | 邻项交换法(最小代价排序/字典序最小) Exchange Arguments | minimum-initial-energy-to-finish-tasks | copypasta/common.go:460 |
||
| 1100 | CF1682B | 非邻项交换(最小代价排序/字典序最小) | AND | 有 | copypasta/common.go:469 |
|
| 1100 | CF1708B | 思维:脑筋急转弯 | 有 | copypasta/common.go:529 |
||
| 1100 | CF1739B | 思维:观察、结论 | 有 | copypasta/common.go:488 |
||
| 1100 | CF1743C | 内层循环负责遍历组,找出这一组最远在哪结束。 | count-unguarded-cells-in-the-grid number-of-subarrays-having-even-product |
有 | copypasta/common.go:274 |
|
| 1100 | CF1793B | 构造 constructive algorithms | 思路好猜,证明更有意思 | 有 | copypasta/common.go:590 |
|
| 1100 | CF1811C | 思维:观察、结论 | 有 | copypasta/common.go:489 |
||
| 1100 | CF1920B | 贪心(证明算法的正确性比算法难) | split-array-into-consecutive-subsequences minimum-number-of-moves-to-make-palindrome |
有 | copypasta/common.go:323 |
|
| 1100 | CF1921D | 部分题目也可以用状态机 DP 解决 | flip-string-to-monotone-increasing | 有 | copypasta/common.go:127 |
|
| 1100 | CF1957B | 构造 constructive algorithms | 有 | copypasta/common.go:591 |
||
| 1100 | CF1993B | 贪心(证明算法的正确性比算法难) | split-array-into-consecutive-subsequences minimum-number-of-moves-to-make-palindrome |
有 | copypasta/common.go:324 |
|
| 1100 | CF1997B | 思维:观察、结论 | 有 | copypasta/common.go:490 |
||
| 1100 | CF2043B | 分类讨论(部分题是易错题) | copypasta/common.go:730 |
|||
| 1100 | CF2044D | 思维:脑筋急转弯 | 有 | copypasta/common.go:530 |
||
| 1100 | CF2044D | 构造 constructive algorithms | 脑筋急转弯 | 有 | copypasta/common.go:592 |
|
| 1100 | CF2071B | 构造 constructive algorithms | 排列 前缀和没有完全平方数 | 有 | copypasta/common.go:594 |
|
| 1100 | CF2094D | 内层循环负责遍历组,找出这一组最远在哪结束。 | count-unguarded-cells-in-the-grid number-of-subarrays-having-even-product |
copypasta/common.go:275 |
||
| 1100 | CF2111C | 内层循环负责遍历组,找出这一组最远在哪结束。 | count-unguarded-cells-in-the-grid number-of-subarrays-having-even-product |
有 | copypasta/common.go:276 |
|
| 1100 | CF2162C | 构造 constructive algorithms | 分类讨论 XOR a -> b | 有 | copypasta/common.go:593 |
|
| 1100 | CF2162C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:731 |
||
| 1100 | CF2241D | 贪心(证明算法的正确性比算法难) | 从左到右贪心 | split-array-into-consecutive-subsequences minimum-number-of-moves-to-make-palindrome |
有 | copypasta/common.go:325 |
| 1200 | CF4B | 构造 constructive algorithms | copypasta/common.go:595 |
|||
| 1200 | CF262B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:732 |
||
| 1200 | CF385B | 更多贡献法题目,见 monotone_stack.go | 做到 O(n) | 有 | copypasta/common.go:842 |
|
| 1200 | CF482A | 构造 constructive algorithms | 有 | copypasta/common.go:596 |
||
| 1200 | CF489B | 双序列双指针 | 有 | copypasta/common.go:241 |
||
| 1200 | CF651B | 构造 constructive algorithms | 有 | copypasta/common.go:597 |
||
| 1200 | CF1006C | 部分题目也可以用状态机 DP 解决 | 也可以相向双指针 | flip-string-to-monotone-increasing | 有 | copypasta/common.go:128 |
| 1200 | CF1006C | 相向双指针 同向双指针 | 有 | copypasta/common.go:228 |
||
| 1200 | CF1028B | 构造 constructive algorithms | 有 | copypasta/common.go:598 |
||
| 1200 | CF1174B | 非邻项交换(最小代价排序/字典序最小) | 有 | copypasta/common.go:470 |
||
| 1200 | CF1257C | 思维:脑筋急转弯 | 有 | copypasta/common.go:531 |
||
| 1200 | CF1270B | 枚举右,维护左 | 式子变形 或者 脑筋急转弯 | number-of-good-pairs sum-of-digit-differences-of-all-pairs |
有 | copypasta/common.go:51 |
| 1200 | CF1270B | 思维:脑筋急转弯 | 有 | copypasta/common.go:532 |
||
| 1200 | CF1272C | 内层循环负责遍历组,找出这一组最远在哪结束。 | count-unguarded-cells-in-the-grid number-of-subarrays-having-even-product |
有 | copypasta/common.go:277 |
|
| 1200 | CF1343C | 内层循环负责遍历组,找出这一组最远在哪结束。 | number-of-subarrays-having-even-product | 有 | copypasta/common.go:278 |
|
| 1200 | CF1354B | 不定长滑动窗口:求最短/最小 | 有 | copypasta/common.go:181 |
||
| 1200 | CF1364A | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:733 |
||
| 1200 | CF1384A | 构造 constructive algorithms | copypasta/common.go:599 |
|||
| 1200 | CF1406B | 乘法贪心 | 5 个数的最大乘积 | 有 | copypasta/common.go:410 |
|
| 1200 | CF1420B | 枚举右,维护左 | number-of-good-pairs sum-of-digit-differences-of-all-pairs |
有 | copypasta/common.go:52 |
|
| 1200 | CF1635C | 构造 constructive algorithms | 有 | copypasta/common.go:600 |
||
| 1200 | CF1692E | 不定长滑动窗口:求最长/最大 | copypasta/common.go:172 |
|||
| 1200 | CF1713C | 构造 constructive algorithms | copypasta/common.go:601 |
|||
| 1200 | CF1793C | 相向双指针 同向双指针 | 有 | copypasta/common.go:229 |
||
| 1200 | CF1793C | 构造 constructive algorithms | 有 | copypasta/common.go:602 |
||
| 1200 | CF1822D | 思维:观察、结论 | 有 | copypasta/common.go:491 |
||
| 1200 | CF1860B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:734 |
||
| 1200 | CF1954B | 思维:观察、结论 | 有 | copypasta/common.go:492 |
||
| 1200 | CF1982C | 前缀和与有序集合 | 也可以滑窗 | 有 | copypasta/common.go:100 |
|
| 1200 | CF1982C | 不定长滑动窗口:上下界 | 有 | copypasta/common.go:190 |
||
| 1200 | CF1990B | 构造 constructive algorithms | copypasta/common.go:603 |
|||
| 1200 | CF2019B | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:843 |
||
| 1200 | CF2047B | 贪心(证明算法的正确性比算法难) | O(n) 做法约 | split-array-into-consecutive-subsequences minimum-number-of-moves-to-make-palindrome |
有 | copypasta/common.go:326 |
| 1200 | CF2053B | 前缀和 | range-sum-query-immutable | 有 | copypasta/common.go:1419 |
|
| 1200 | CF2053B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:735 |
||
| 1200 | CF2056C | 构造 constructive algorithms | 有 | copypasta/common.go:604 |
||
| 1200 | CF2065D | 排序不等式 | 有 | copypasta/common.go:425 |
||
| 1200 | CF2072C | 构造 constructive algorithms | 有 | copypasta/common.go:605 |
||
| 1200 | CF2092C | 不变量(想一想,操作不会改变什么) | 有 | copypasta/common.go:710 |
||
| 1200 | CF2117C | 贪心(证明算法的正确性比算法难) | minimum-number-of-moves-to-make-palindrome | 有 | copypasta/common.go:327 |
|
| 1200 | CF2118B | 构造 constructive algorithms | 有 | copypasta/common.go:606 |
||
| 1200 | CF2126D | 贪心(证明算法的正确性比算法难) | 区间贪心 | 有 | copypasta/common.go:328 |
|
| 1200 | CF2134B | 构造 constructive algorithms | 操作至多 k 次:把 a 的一个子序列的元素都增加 k,最终让 gcd(a) > 1(提示:从特殊到一般) | 有 | copypasta/common.go:607 |
|
| 1200 | CF2202B | 思维:观察、结论 | 有 | copypasta/common.go:493 |
||
| 1300 | CF234C | 部分题目也可以用状态机 DP 解决 | flip-string-to-monotone-increasing | 有 | copypasta/common.go:129 |
|
| 1300 | CF318B | 枚举右,维护左 | 子串 | sum-of-digit-differences-of-all-pairs | 有 | copypasta/common.go:54 |
| 1300 | CF545D | 贪心(证明算法的正确性比算法难) | 有 | copypasta/common.go:329 |
||
| 1300 | CF681B | 暴力枚举 | copypasta/common.go:38 |
|||
| 1300 | CF716B | 定长滑动窗口 | 有 | copypasta/common.go:160 |
||
| 1300 | CF870C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:736 |
||
| 1300 | CF897B | 按顺序从小到大生成所有回文数 | find-the-count-of-good-integers find-the-closest-palindrome |
有 | copypasta/common.go:1206 |
|
| 1300 | CF932B | 前缀和 | range-sum-query-immutable | copypasta/common.go:1420 |
||
| 1300 | CF1077C | 思维:观察、结论 | 有 | copypasta/common.go:494 |
||
| 1300 | CF1178B | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:130 |
||
| 1300 | CF1279B | 贪心(证明算法的正确性比算法难) | 有 | copypasta/common.go:330 |
||
| 1300 | CF1364B | 思维:观察、结论 | 有 | copypasta/common.go:495 |
||
| 1300 | CF1373C | 合法括号字符串(Regular Bracket Sequence, RBS) | 有 | copypasta/common.go:911 |
||
| 1300 | CF1443B | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:131 |
||
| 1300 | CF1443B | 贪心(证明算法的正确性比算法难) | 有 | copypasta/common.go:331 |
||
| 1300 | CF1498B | 贪心(证明算法的正确性比算法难) | 从大到小贪心 | 有 | copypasta/common.go:332 |
|
| 1300 | CF1538C | 相向双指针 a[i] + b[j] = < > target | 有 | copypasta/common.go:247 |
||
| 1300 | CF1555B | 贪心(证明算法的正确性比算法难) | 有 | copypasta/common.go:333 |
||
| 1300 | CF1585C | 贪心(证明算法的正确性比算法难) | 有 | copypasta/common.go:334 |
||
| 1300 | CF1693A | 合法括号字符串(Regular Bracket Sequence, RBS) | 类似思想 | 有 | copypasta/common.go:912 |
|
| 1300 | CF1698C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:737 |
||
| 1300 | CF1717C | 构造 constructive algorithms | 有 | copypasta/common.go:608 |
||
| 1300 | CF1733C | 构造 constructive algorithms | 有 | copypasta/common.go:609 |
||
| 1300 | CF1788C | 构造 constructive algorithms | 有 | copypasta/common.go:610 |
||
| 1300 | CF1794C | 不定长滑动窗口:求最长/最大 | 式子变形 | minimum-operations-to-reduce-x-to-zero | 有 | copypasta/common.go:175 |
| 1300 | CF1815A | 构造 constructive algorithms | 有 | copypasta/common.go:611 |
||
| 1300 | CF1821C | 内层循环负责遍历组,找出这一组最远在哪结束。 | 枚举答案 | number-of-subarrays-having-even-product | copypasta/common.go:279 |
|
| 1300 | CF1844C | 思维:观察、结论 | 假设答案是某些数之和,经过什么样的操作可以得到这些数? | 有 | copypasta/common.go:496 |
|
| 1300 | CF1873F | 不定长滑动窗口:求最长/最大 | minimum-operations-to-reduce-x-to-zero | 有 | copypasta/common.go:174 |
|
| 1300 | CF1873F | 内层循环负责遍历组,找出这一组最远在哪结束。 | 有 | copypasta/common.go:280 |
||
| 1300 | CF1881D | 不变量(想一想,操作不会改变什么) | 有 | copypasta/common.go:711 |
||
| 1300 | CF1889A | 不变量(想一想,操作不会改变什么) | 有 | copypasta/common.go:712 |
||
| 1300 | CF1902C | 贪心(证明算法的正确性比算法难) | 有 | copypasta/common.go:335 |
||
| 1300 | CF1915E | 前缀和与哈希表 | 交错前缀和 | copypasta/common.go:83 |
||
| 1300 | CF1922C | 前缀和 | range-sum-query-immutable | 有 | copypasta/common.go:1421 |
|
| 1300 | CF1926D | 枚举右,维护左 | 有 | copypasta/common.go:56 |
||
| 1300 | CF1931D | 枚举右,维护左 | pair | 有 | copypasta/common.go:55 |
|
| 1300 | CF1978C | 构造 constructive algorithms | copypasta/common.go:612 |
|||
| 1300 | CF1980C | 构造 constructive algorithms | 有 | copypasta/common.go:613 |
||
| 1300 | CF1988C | 构造 constructive algorithms | 严格递增序列,满足 a[i] | a[i+1] = n | 有 | copypasta/common.go:614 |
|
| 1300 | CF1991C | 思维:观察、结论 | 有 | copypasta/common.go:497 |
||
| 1300 | CF1999E | 贪心(证明算法的正确性比算法难) | 有 | copypasta/common.go:336 |
||
| 1300 | CF2026B | 部分题目也可以用状态机 DP 解决 | 做到 O(n) | 有 | copypasta/common.go:132 |
|
| 1300 | CF2031C | 构造 constructive algorithms | 本格构造 | 有 | copypasta/common.go:615 |
|
| 1300 | CF2033D | 前缀和 | range-sum-query-immutable | 有 | copypasta/common.go:1422 |
|
| 1300 | CF2064C | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:133 |
||
| 1300 | CF2065C2 | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:738 |
||
| 1300 | CF2075B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:739 |
||
| 1300 | CF2108B | 构造 constructive algorithms | 构造 异或和为 x | 有 | copypasta/common.go:616 |
|
| 1300 | CF2108B | 大量分类讨论 | 构造 异或和为 x | 有 | copypasta/common.go:815 |
|
| 1300 | CF2112C | 相向双指针 a[i] + b[j] = < > target | 有 | copypasta/common.go:248 |
||
| 1300 | CF2145C | 前缀和与哈希表 | 有 | copypasta/common.go:84 |
||
| 1300 | CF2146C | 内层循环负责遍历组,找出这一组最远在哪结束。 | 有 | copypasta/common.go:281 |
||
| 1300 | CF2146C | 构造 constructive algorithms | 有 | copypasta/common.go:617 |
||
| 1300 | CF2169C | 枚举右,维护左 | 有 | copypasta/common.go:57 |
||
| 1300 | CF2169C | 前缀和 | range-sum-query-immutable | 有 | copypasta/common.go:1423 |
|
| 1300 | CF2175B | 前缀和 | range-sum-query-immutable | 有 | copypasta/common.go:1424 |
|
| 1300 | CF2179D | 构造 constructive algorithms | 构造排列,使 AND 前缀的 popcount 之和最大 | 有 | copypasta/common.go:618 |
|
| 1400 | CF30A | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:740 |
||
| 1400 | CF45I | 乘法贪心 | 有 | copypasta/common.go:411 |
||
| 1400 | CF45I | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:741 |
||
| 1400 | CF180C | 部分题目也可以用状态机 DP 解决 | trapping-rain-water flip-string-to-monotone-increasing |
有 | copypasta/common.go:124 |
|
| 1400 | CF363C | 内层循环负责遍历组,找出这一组最远在哪结束。 | 分组循环 + 分组循环 | 有 | copypasta/common.go:282 |
|
| 1400 | CF388A | 贪心(证明算法的正确性比算法难) | 有 | copypasta/common.go:337 |
||
| 1400 | CF435B | 邻项交换法(最小代价排序/字典序最小) Exchange Arguments | minimum-initial-energy-to-finish-tasks | 有 | copypasta/common.go:462 |
|
| 1400 | CF437C | 贪心(证明算法的正确性比算法难) | 排序不等式/交换论证法 | 有 | copypasta/common.go:338 |
|
| 1400 | CF437C | 交换论证法 | 排序不等式 | 有 | copypasta/common.go:401 |
|
| 1400 | CF437C | 排序不等式 | 有 | copypasta/common.go:426 |
||
| 1400 | CF489C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:742 |
||
| 1400 | CF492C | 贪心(证明算法的正确性比算法难) | copypasta/common.go:339 |
|||
| 1400 | CF550B | 不定长滑动窗口:求子数组个数 | 变形:改成子数组 | copypasta/common.go:194 |
||
| 1400 | CF604B | 贪心(证明算法的正确性比算法难) | boats-to-save-people | 有 | copypasta/common.go:312 |
|
| 1400 | CF710B | 【思考题】插入一个数再选定一个 x,每次操作 +x/-x,计算最小操作次数 | 有 | copypasta/common.go:419 |
||
| 1400 | CF803A | 构造 constructive algorithms | 有 | copypasta/common.go:619 |
||
| 1400 | CF816B | 差分数组 | 有 | copypasta/common.go:2050 |
||
| 1400 | CF920C | 邻项交换法(最小代价排序/字典序最小) Exchange Arguments | minimum-initial-energy-to-finish-tasks | 有 | copypasta/common.go:461 |
|
| 1400 | CF934A | 乘法贪心 | 有 | copypasta/common.go:412 |
||
| 1400 | CF934A | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:743 |
||
| 1400 | CF1009B | 思维:脑筋急转弯 | 有 | copypasta/common.go:533 |
||
| 1400 | CF1009B | 分类讨论(部分题是易错题) | 脑筋急转弯 | 有 | copypasta/common.go:744 |
|
| 1400 | CF1097C | 合法括号字符串(Regular Bracket Sequence, RBS) | 有 | copypasta/common.go:913 |
||
| 1400 | CF1102B | 构造 constructive algorithms | 有 | copypasta/common.go:620 |
||
| 1400 | CF1251B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:745 |
||
| 1400 | CF1292A | 分类讨论(部分题是易错题) | 也有简单写法 | 有 | copypasta/common.go:746 |
|
| 1400 | CF1369C | 贪心(证明算法的正确性比算法难) | 有 | copypasta/common.go:340 |
||
| 1400 | CF1380C | 内层循环负责遍历组,找出这一组最远在哪结束。 | 有 | copypasta/common.go:283 |
||
| 1400 | CF1443C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:349 |
||
| 1400 | CF1579D | 或者说,每次删除两个不同元素,最多能删多少次? | 有 | copypasta/common.go:440 |
||
| 1400 | CF1605C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:747 |
||
| 1400 | CF1628A | 内层循环负责遍历组,找出这一组最远在哪结束。 | 注:这题被力扣抄去当周赛题了 https://leetcode.cn/problems/lexicographically-maximum-mex-array/ | lexicographically-maximum-mex-array | 有 | copypasta/common.go:284 |
| 1400 | CF1648A | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:844 |
||
| 1400 | CF1691C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:350 |
||
| 1400 | CF1691C | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:845 |
||
| 1400 | CF1706C | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:134 |
||
| 1400 | CF1735C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 字典序最小 | copypasta/common.go:351 |
||
| 1400 | CF1837D | 合法括号字符串(Regular Bracket Sequence, RBS) | 有 | copypasta/common.go:914 |
||
| 1400 | CF1838C | 构造 constructive algorithms | 有 | copypasta/common.go:621 |
||
| 1400 | CF1844D | 构造 constructive algorithms | copypasta/common.go:622 |
|||
| 1400 | CF1863D | 构造 constructive algorithms | 棋盘+多米诺染色 | copypasta/common.go:623 |
||
| 1400 | CF1883F | 思维:脑筋急转弯 | 有 | copypasta/common.go:534 |
||
| 1400 | CF1895C | 任意下标 i 和 j | 有 | copypasta/common.go:76 |
||
| 1400 | CF1895C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:352 |
||
| 1400 | CF1896C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:353 |
||
| 1400 | CF1896C | 构造 constructive algorithms | 有 | copypasta/common.go:624 |
||
| 1400 | CF1904C | 思维:脑筋急转弯 | 有 | copypasta/common.go:535 |
||
| 1400 | CF1914E2 | 贪心(证明算法的正确性比算法难) | shortest-impossible-sequence-of-rolls stone-game-vi |
有 | copypasta/common.go:319 |
|
| 1400 | CF1923C | 前缀和 | 构造 | 有 | copypasta/common.go:1425 |
|
| 1400 | CF1932C | 离线 | 有 | copypasta/common.go:986 |
||
| 1400 | CF1955D | 定长滑动窗口 | 有 | copypasta/common.go:161 |
||
| 1400 | CF1974C | 枚举右,维护左 | 有 | copypasta/common.go:58 |
||
| 1400 | CF1974D | 构造 constructive algorithms | 有 | copypasta/common.go:625 |
||
| 1400 | CF1980D | 部分题目也可以用状态机 DP 解决 | pairwise 的前后缀分解 | 有 | copypasta/common.go:135 |
|
| 1400 | CF1983C | 方向 | 有 | copypasta/common.go:1142 |
||
| 1400 | CF1989C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:354 |
||
| 1400 | CF1989C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:748 |
||
| 1400 | CF2000E | 排序不等式 | 有 | copypasta/common.go:427 |
||
| 1400 | CF2000E | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:846 |
||
| 1400 | CF2014D | 定长滑动窗口 | 有些另类,也可以用差分做 | 有 | copypasta/common.go:162 |
|
| 1400 | CF2014D | 差分数组 | 也可以用定长滑窗做 | 有 | copypasta/common.go:2051 |
|
| 1400 | CF2032C | 单序列双指针 | count-the-number-of-incremovable-subarrays-ii | 有 | copypasta/common.go:223 |
|
| 1400 | CF2034C | 思维:脑筋急转弯 | 有 | copypasta/common.go:536 |
||
| 1400 | CF2034C | 构造 constructive algorithms | 网格图 | 有 | copypasta/common.go:626 |
|
| 1400 | CF2035C | 构造 constructive algorithms | 排列 &|&|&|… 结果最大 | 有 | copypasta/common.go:627 |
|
| 1400 | CF2098B | 【思考题】插入一个数再选定一个 x,每次操作 +x/-x,计算最小操作次数 | 有 | copypasta/common.go:420 |
||
| 1400 | CF2110C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:749 |
||
| 1400 | CF2120C | 构造 constructive algorithms | copypasta/common.go:628 |
|||
| 1400 | CF2126E | 构造 constructive algorithms | 前后缀 GCD | copypasta/common.go:629 |
||
| 1400 | CF2131E | 思维:脑筋急转弯 | 有 | copypasta/common.go:537 |
||
| 1400 | CF2152C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | copypasta/common.go:355 |
|||
| 1400 | CF2171C2 | 不变量(想一想,操作不会改变什么) | 有 | copypasta/common.go:713 |
||
| 1500 | CF115B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:751 |
||
| 1500 | CF159D | 枚举右,维护左 | 回文子串 | 有 | copypasta/common.go:59 |
|
| 1500 | CF166C | 【思考题】插入一个数再选定一个 x,每次操作 +x/-x,计算最小操作次数 | 中位数相关 *可以做到对不同的 x 用 O(log n) 时间回答 | 有 | copypasta/common.go:421 |
|
| 1500 | CF224B | 不定长滑动窗口:求最短/最小 | 和最小 | 有 | copypasta/common.go:182 |
|
| 1500 | CF276C | 排序不等式 | 有 | copypasta/common.go:428 |
||
| 1500 | CF276C | 差分数组 | 有 | copypasta/common.go:2052 |
||
| 1500 | CF608B | 定长滑动窗口 | 有 | copypasta/common.go:163 |
||
| 1500 | CF611C | 二维前缀和 | range-sum-query-2d-immutable | 有 | copypasta/common.go:1645 |
|
| 1500 | CF620C | 内层循环负责遍历组,找出这一组最远在哪结束。 | lexicographically-maximum-mex-array | 有 | copypasta/common.go:285 |
|
| 1500 | CF701C | 不定长滑动窗口:求最短/最小 | 有 | copypasta/common.go:183 |
||
| 1500 | CF846A | 部分题目也可以用状态机 DP 解决 | trapping-rain-water flip-string-to-monotone-increasing |
有 | copypasta/common.go:125 |
|
| 1500 | CF858C | 内层循环负责遍历组,找出这一组最远在哪结束。 | lexicographically-maximum-mex-array | 有 | copypasta/common.go:286 |
|
| 1500 | CF864D | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:356 |
||
| 1500 | CF873B | 枚举右,维护左 | copypasta/common.go:60 |
|||
| 1500 | CF960B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:752 |
||
| 1500 | CF985C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:357 |
||
| 1500 | CF990C | 合法括号字符串(Regular Bracket Sequence, RBS) | 有 | copypasta/common.go:915 |
||
| 1500 | CF1012A | 思维:脑筋急转弯 | 有 | copypasta/common.go:538 |
||
| 1500 | CF1051C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:753 |
||
| 1500 | CF1141C | 前缀和 | 有 | copypasta/common.go:1426 |
||
| 1500 | CF1166C | 单序列双指针 | count-the-number-of-incremovable-subarrays-ii | 有 | copypasta/common.go:224 |
|
| 1500 | CF1169B | 思维:脑筋急转弯 | 有 | copypasta/common.go:539 |
||
| 1500 | CF1180B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:754 |
||
| 1500 | CF1250L | 分类讨论(部分题是易错题) | copypasta/common.go:755 |
|||
| 1500 | CF1492C | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:136 |
||
| 1500 | CF1630A | 构造 constructive algorithms | copypasta/common.go:630 |
|||
| 1500 | CF1659C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:358 |
||
| 1500 | CF1690E | 贪心(证明算法的正确性比算法难) | boats-to-save-people | 有 | copypasta/common.go:313 |
|
| 1500 | CF1710A | 构造 constructive algorithms | copypasta/common.go:631 |
|||
| 1500 | CF1722G | 构造 constructive algorithms | copypasta/common.go:632 |
|||
| 1500 | CF1753A2 | 内层循环负责遍历组,找出这一组最远在哪结束。 | lexicographically-maximum-mex-array | 有 | copypasta/common.go:287 |
|
| 1500 | CF1753A2 | 思维:观察、结论 | 有 | copypasta/common.go:498 |
||
| 1500 | CF1759E | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:359 |
||
| 1500 | CF1765K | 思维:观察、结论 | 有 | copypasta/common.go:499 |
||
| 1500 | CF1789C | 更多贡献法题目,见 monotone_stack.go | 好题! | 有 | copypasta/common.go:847 |
|
| 1500 | CF1792C | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:991 |
||
| 1500 | CF1809C | 构造 constructive algorithms | 有 | copypasta/common.go:633 |
||
| 1500 | CF1857E | 反向贡献法 | 有 | copypasta/common.go:879 |
||
| 1500 | CF1873G | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | copypasta/common.go:360 |
|||
| 1500 | CF1924A | 贪心(证明算法的正确性比算法难) | 输出方案 | boats-to-save-people shortest-impossible-sequence-of-rolls |
有 | copypasta/common.go:317 |
| 1500 | CF1924A | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:361 |
||
| 1500 | CF1990C | 思维:观察、结论 | 有 | copypasta/common.go:500 |
||
| 1500 | CF1996D | 暴力枚举 | maximize-number-of-subsequences-in-a-string | 有 | copypasta/common.go:40 |
|
| 1500 | CF2008E | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:137 |
||
| 1500 | CF2057C | 构造 constructive algorithms | XOR 可以做到 O(1) | 有 | copypasta/common.go:634 |
|
| 1500 | CF2072E | 构造 constructive algorithms | 有 | copypasta/common.go:635 |
||
| 1500 | CF2075C | 相向双指针 同向双指针 | a[i] + a[j] <= target | 有 | copypasta/common.go:230 |
|
| 1500 | CF2077A | 构造 constructive algorithms | copypasta/common.go:636 |
|||
| 1500 | CF2093E | 内层循环负责遍历组,找出这一组最远在哪结束。 | lexicographically-maximum-mex-array | 有 | copypasta/common.go:288 |
|
| 1500 | CF2106D | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:138 |
||
| 1500 | CF2107C | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:139 |
||
| 1500 | CF2107C | 构造 constructive algorithms | 经典 DP 的构造版本 | 有 | copypasta/common.go:637 |
|
| 1500 | CF2121E | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:362 |
||
| 1500 | CF2137E | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:756 |
||
| 1500 | CF2140C | 枚举右,维护左 | 有 | copypasta/common.go:61 |
||
| 1500 | CF2140C | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:140 |
||
| 1500 | CF2140C | 思维:脑筋急转弯 | 有 | copypasta/common.go:540 |
||
| 1500 | CF2146D1 | 构造 constructive algorithms | 重排使得 sum(p[i] | q[i]) 最大 | 有 | copypasta/common.go:638 |
|
| 1500 | CF2149E | 不定长滑动窗口:求子数组个数 | 恰好型 | 有 | copypasta/common.go:195 |
|
| 1500 | CF2163C | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:141 |
||
| 1500 | CF2200E | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:757 |
||
| 1600 | CF150B | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:758 |
||
| 1600 | CF383A | 更多贡献法题目,见 monotone_stack.go | 好题 | 有 | copypasta/common.go:848 |
|
| 1600 | CF500C | 思维:脑筋急转弯 | 有 | copypasta/common.go:541 |
||
| 1600 | CF525C | 内层循环负责遍历组,找出这一组最远在哪结束。 | lexicographically-maximum-mex-array | 有 | copypasta/common.go:289 |
|
| 1600 | CF601A | 思维:脑筋急转弯 | 有 | copypasta/common.go:542 |
||
| 1600 | CF712C | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:994 |
||
| 1600 | CF750C | 分类讨论(部分题是易错题) | *也有偏数学的做法 | 有 | copypasta/common.go:759 |
|
| 1600 | CF777C | 横看成岭侧成峰 | maximum-number-of-ones minimum-number-of-increments-on-subarrays-to-form-a-target-array |
有 | copypasta/common.go:973 |
|
| 1600 | CF835C | 二维前缀和 | range-sum-query-2d-immutable | 有 | copypasta/common.go:1646 |
|
| 1600 | CF877C | 思维:观察、结论 | 有 | copypasta/common.go:501 |
||
| 1600 | CF898D | 滑窗的同时维护数据 | 有 | copypasta/common.go:201 |
||
| 1600 | CF898E | 分类讨论(部分题是易错题) | copypasta/common.go:760 |
|||
| 1600 | CF913C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:363 |
||
| 1600 | CF1029C | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:142 |
||
| 1600 | CF1065C | !需要保证 a 是有序的 | sum-of-mutated-array-closest-to-target | 有 | copypasta/common.go:1532 |
|
| 1600 | CF1082C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:364 |
||
| 1600 | CF1165E | 排序不等式 | 有 | copypasta/common.go:429 |
||
| 1600 | CF1165E | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:849 |
||
| 1600 | CF1687A | 定长滑动窗口 | 有 | copypasta/common.go:164 |
||
| 1600 | CF1707A | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 倒序思维 | 有 | copypasta/common.go:365 |
|
| 1600 | CF1748C | 内层循环负责遍历组,找出这一组最远在哪结束。 | lexicographically-maximum-mex-array | 有 | copypasta/common.go:290 |
|
| 1600 | CF1822E | 或者说,每次删除两个不同元素,最多能删多少次? | maximum-number-of-weeks-for-which-you-can-work | 有 | copypasta/common.go:442 |
|
| 1600 | CF1822E | 分类讨论(部分题是易错题) | 样例给的挺良心的 | 有 | copypasta/common.go:761 |
|
| 1600 | CF1856C | 暴力枚举 | maximize-number-of-subsequences-in-a-string | 有 | copypasta/common.go:41 |
|
| 1600 | CF1861C | 分类讨论(部分题是易错题) | 好题! | 有 | copypasta/common.go:762 |
|
| 1600 | CF1968E | 构造 constructive algorithms | 有 | copypasta/common.go:639 |
||
| 1600 | CF1971F | 多指针 | 有 | copypasta/common.go:206 |
||
| 1600 | CF1976C | 分类讨论(部分题是易错题) | copypasta/common.go:763 |
|||
| 1600 | CF1978D | 分类讨论(部分题是易错题) | copypasta/common.go:764 |
|||
| 1600 | CF1980E | 思维:观察、结论 | 交换行列把矩阵 A 变成矩阵 B | 有 | copypasta/common.go:502 |
|
| 1600 | CF1994C | 不定长滑动窗口:求子数组个数 | 结合 DP | 有 | copypasta/common.go:196 |
|
| 1600 | CF1996E | 前缀和与哈希表 | 子数组中的和为 k 的子数组的个数之和 | 有 | copypasta/common.go:85 |
|
| 1600 | CF2028C | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:143 |
||
| 1600 | CF2051E | 常与树状数组、线段树、平衡树等数据结构结合 | the-skyline-problem rectangle-area-ii |
有 | copypasta/common.go:2576 |
|
| 1600 | CF2082B | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:366 |
||
| 1600 | CF2084D | 构造 constructive algorithms | copypasta/common.go:640 |
|||
| 1600 | CF2085C | 构造 constructive algorithms | 构造 k,使得 (x+k) AND (y+k) = 0 | 有 | copypasta/common.go:641 |
|
| 1600 | CF2094F | 构造 constructive algorithms | 棋盘 k-染色 (i+j)%2 彩带染色法 | 有 | copypasta/common.go:642 |
|
| 1600 | CF2117E | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:765 |
||
| 1600 | CF2128D | 思维:观察、结论 | copypasta/common.go:503 |
|||
| 1600 | CF2167F | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:850 |
||
| 1600 | CF2171F | 构造 constructive algorithms | 给定排列 p,构造一棵树,满足每条边的 pos[小端] < pos[大端] | 有 | copypasta/common.go:643 |
|
| 1700 | CF66D | 构造 constructive algorithms | 有 | copypasta/common.go:644 |
||
| 1700 | CF193A | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:766 |
||
| 1700 | CF201A | 构造 constructive algorithms | copypasta/common.go:645 |
|||
| 1700 | CF295B | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:995 |
||
| 1700 | CF382C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:767 |
||
| 1700 | CF411C | 分类讨论(部分题是易错题) | copypasta/common.go:768 |
|||
| 1700 | CF466C | 前缀和 | 有 | copypasta/common.go:79 |
||
| 1700 | CF584C | 构造 constructive algorithms | 分类讨论 | 有 | copypasta/common.go:646 |
|
| 1700 | CF621C | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:996 |
||
| 1700 | CF1000C | 常与树状数组、线段树、平衡树等数据结构结合 | 经典题 | the-skyline-problem rectangle-area-ii |
有 | copypasta/common.go:2577 |
| 1700 | CF1157C2 | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:367 |
||
| 1700 | CF1301C | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:997 |
||
| 1700 | CF1332D | 构造 constructive algorithms | 给你一个错误代码,构造 hack 数据 | 有 | copypasta/common.go:647 |
|
| 1700 | CF1516C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:769 |
||
| 1700 | CF1608C | 思维:观察、结论 | 有 | copypasta/common.go:504 |
||
| 1700 | CF1644D | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:998 |
||
| 1700 | CF1661C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 奇数天+1 偶数天 +2 | 有 | copypasta/common.go:368 |
|
| 1700 | CF1672D | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:999 |
||
| 1700 | CF1700C | 横看成岭侧成峰 | 有 | copypasta/common.go:957 |
||
| 1700 | CF1700C | 差分数组 | 有 | copypasta/common.go:2053 |
||
| 1700 | CF1715C | 更多贡献法题目,见 monotone_stack.go | 也可以用增量法 | 有 | copypasta/common.go:851 |
|
| 1700 | CF1715C | 增量法 | 也可以用贡献法 | count-unique-characters-of-all-substrings-of-a-given-string subarrays-distinct-element-sum-of-squares-ii |
有 | copypasta/common.go:888 |
| 1700 | CF1731D | 二维前缀和 | range-sum-query-2d-immutable | copypasta/common.go:1647 |
||
| 1700 | CF1765D | 贪心(证明算法的正确性比算法难) | boats-to-save-people | 有 | copypasta/common.go:314 |
|
| 1700 | CF1777C | 不定长滑动窗口:求最短/最小 | 有 | copypasta/common.go:184 |
||
| 1700 | CF1799C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:770 |
||
| 1700 | CF1849D | 内层循环负责遍历组,找出这一组最远在哪结束。 | 有 | copypasta/common.go:291 |
||
| 1700 | CF1879D | 枚举右,维护左 | 子数组长度 | 有 | copypasta/common.go:62 |
|
| 1700 | CF1884C | 差分数组 | 结论 | 有 | copypasta/common.go:2054 |
|
| 1700 | CF1884C | 离散差分,传入闭区间列表 a,不要求有序 | count-days-without-meetings | 有 | copypasta/common.go:2153 |
|
| 1700 | CF1893B | 构造 constructive algorithms | 有 | copypasta/common.go:648 |
||
| 1700 | CF1930C | 思维:观察、结论 | 有 | copypasta/common.go:505 |
||
| 1700 | CF1955E | 差分数组 | 有 | copypasta/common.go:2055 |
||
| 1700 | CF1983D | 思维:脑筋急转弯 | 操作多次:交换 a 中两个相距 d 的元素,b 中两个相距 d 的元素,使得 a = b | 有 | copypasta/common.go:543 |
|
| 1700 | CF1995B2 | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:369 |
||
| 1700 | CF2009F | 前缀和 | 有 | copypasta/common.go:1427 |
||
| 1700 | CF2031D | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:144 |
||
| 1700 | CF2031D | 内层循环负责遍历组,找出这一组最远在哪结束。 | 有 | copypasta/common.go:292 |
||
| 1700 | CF2045A | 大量分类讨论 | 做到 O(n) | 有 | copypasta/common.go:816 |
|
| 1700 | CF2065F | 思维:脑筋急转弯 | 有 | copypasta/common.go:544 |
||
| 1700 | CF2065G | 枚举右,维护左 | 质因子 分类讨论 | 有 | copypasta/common.go:63 |
|
| 1700 | CF2065G | 大量分类讨论 | 有 | copypasta/common.go:817 |
||
| 1700 | CF2071C | 构造 constructive algorithms | 树 排列 | 有 | copypasta/common.go:649 |
|
| 1700 | CF2112D | 思维:脑筋急转弯 | 树 边定向 | 有 | copypasta/common.go:545 |
|
| 1700 | CF2112D | 构造 constructive algorithms | 树 定向 | 有 | copypasta/common.go:650 |
|
| 1700 | CF2113C | 思维:脑筋急转弯 | Minecraft TNT 炸金矿 | 有 | copypasta/common.go:546 |
|
| 1700 | CF2113C | 二维前缀和 | Minecraft TNT 炸金矿 脑筋急转弯 | range-sum-query-2d-immutable | 有 | copypasta/common.go:1648 |
| 1700 | CF2124D | 思维:观察、结论 | copypasta/common.go:506 |
|||
| 1800 | CF69E | 定长滑动窗口 | 有 | copypasta/common.go:165 |
||
| 1800 | CF142B | 构造 constructive algorithms | 棋盘放最多的马 | copypasta/common.go:651 |
||
| 1800 | CF252B | 非邻项交换(最小代价排序/字典序最小) | copypasta/common.go:471 |
|||
| 1800 | CF799C | 背向双指针 | 也可以二分查找 | 有 | copypasta/common.go:238 |
|
| 1800 | CF846C | 巧妙枚举 | number-of-ways-where-square-of-number-is-equal-to-product-of-two-numbers count-the-number-of-substrings-with-dominant-ones |
有 | copypasta/common.go:305 |
|
| 1800 | CF846F | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:852 |
||
| 1800 | CF846F | 增量法 | 一样的题目 也可以用贡献法 | total-appeal-of-a-string | 有 | copypasta/common.go:883 |
| 1800 | CF847C | 构造 constructive algorithms | copypasta/common.go:652 |
|||
| 1800 | CF847C | 合法括号字符串(Regular Bracket Sequence, RBS) | 构造 | copypasta/common.go:916 |
||
| 1800 | CF911D | 思维:观察、结论 | 逆序对 | 有 | copypasta/common.go:507 |
|
| 1800 | CF911D | 思维:脑筋急转弯 | 有 | copypasta/common.go:547 |
||
| 1800 | CF989C | 构造 constructive algorithms | 网格图 每种字符构成的联通块个数恰好等于 a,b,c,d | 有 | copypasta/common.go:653 |
|
| 1800 | CF1005E1 | 前缀和与哈希表 | subarray-sum-equals-k | copypasta/common.go:87 |
||
| 1800 | CF1016C | 带权前缀和,权重是等差数列 | 有 | copypasta/common.go:1591 |
||
| 1800 | CF1107D | 二维前缀和 | range-sum-query-2d-immutable | 有 | copypasta/common.go:1649 |
|
| 1800 | CF1156B | 构造 constructive algorithms | 相邻字母在字母表中不相邻 | 有 | copypasta/common.go:654 |
|
| 1800 | CF1267L | 构造 constructive algorithms | 有 | copypasta/common.go:655 |
||
| 1800 | CF1304D | 构造 constructive algorithms | 最短/最长 LIS | 有 | copypasta/common.go:656 |
|
| 1800 | CF1420D | 离散差分,传入闭区间列表 a,不要求有序 | count-days-without-meetings | 有 | copypasta/common.go:2154 |
|
| 1800 | CF1442A | 思维:观察、结论 | 有 | copypasta/common.go:508 |
||
| 1800 | CF1442A | 横看成岭侧成峰 | 有 | copypasta/common.go:956 |
||
| 1800 | CF1468J | 分类讨论(部分题是易错题) | MST | 有 | copypasta/common.go:772 |
|
| 1800 | CF1554D | 构造 constructive algorithms | 有 | copypasta/common.go:657 |
||
| 1800 | CF1709C | 合法括号字符串(Regular Bracket Sequence, RBS) | 方案数 | 有 | copypasta/common.go:917 |
|
| 1800 | CF1768D | 非邻项交换(最小代价排序/字典序最小) | 有 | copypasta/common.go:472 |
||
| 1800 | CF1793D | MEX | 有 | copypasta/common.go:563 |
||
| 1800 | CF1833G | 分类讨论(部分题是易错题) | 样例给得挺良心的 | copypasta/common.go:773 |
||
| 1800 | CF1907F | 非邻项交换(最小代价排序/字典序最小) | shift+reverse | 有 | copypasta/common.go:473 |
|
| 1800 | CF1954D | 或者说,每次删除两个不同元素,最多能删多少次? | maximum-number-of-weeks-for-which-you-can-work | 有 | copypasta/common.go:443 |
|
| 1800 | CF1955F | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:774 |
||
| 1800 | CF1965B | 构造 constructive algorithms | 二进制分解 | 有 | copypasta/common.go:658 |
|
| 1800 | CF2035D | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:370 |
||
| 1800 | CF2042C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:371 |
||
| 1800 | CF2069D | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:798 |
||
| 1800 | CF2117F | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:775 |
||
| 1800 | CF2145D | 构造 constructive algorithms | 排列 子问题 | 有 | copypasta/common.go:659 |
|
| 1800 | CF2187B | 分类讨论(部分题是易错题) | 构造不相交的 p 和 q,使得 |p-x| + |q-y| 最小 | 有 | copypasta/common.go:776 |
|
| 1800 | CF2209D | 或者说,每次删除两个不同元素,最多能删多少次? | maximum-number-of-weeks-for-which-you-can-work | copypasta/common.go:444 |
||
| 1900 | CF3B | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:372 |
||
| 1900 | CF118C | 构造 constructive algorithms | 贪心 | 有 | copypasta/common.go:660 |
|
| 1900 | CF327D | 构造 constructive algorithms | copypasta/common.go:661 |
|||
| 1900 | CF388B | 构造 constructive algorithms | 两点间恰好 k 条最短路径 | 有 | copypasta/common.go:662 |
|
| 1900 | CF550D | 构造 constructive algorithms | 度数均为 k 且至少(恰好)有一条割边 | copypasta/common.go:663 |
||
| 1900 | CF558C | 思维:观察、结论 | 有 | copypasta/common.go:509 |
||
| 1900 | CF708B | 构造 constructive algorithms | 分类讨论 | 有 | copypasta/common.go:664 |
|
| 1900 | CF796C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:777 |
||
| 1900 | CF796C | 大量分类讨论 | 有 | copypasta/common.go:818 |
||
| 1900 | CF1095E | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:778 |
||
| 1900 | CF1181C | 巧妙枚举 | number-of-ways-where-square-of-number-is-equal-to-product-of-two-numbers count-the-number-of-substrings-with-dominant-ones |
有 | copypasta/common.go:306 |
|
| 1900 | CF1479B1 | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:373 |
||
| 1900 | CF1644E | 思维:观察、结论 | 有 | copypasta/common.go:510 |
||
| 1900 | CF1647D | 大量分类讨论 | 有 | copypasta/common.go:819 |
||
| 1900 | CF1659D | 构造 constructive algorithms | 有 | copypasta/common.go:665 |
||
| 1900 | CF1661D | 金字塔式更新 +1 +2 +3 +4 +3 +2 +1 | 简化 | 有 | copypasta/common.go:2099 |
|
| 1900 | CF1707B | 差分数组 | 复杂度分析 | 有 | copypasta/common.go:2056 |
|
| 1900 | CF1714F | 分类讨论(部分题是易错题) | 锻炼代码实现技巧的好题 | 有 | copypasta/common.go:779 |
|
| 1900 | CF1747D | 思维:观察、结论 | 不变量 | 有 | copypasta/common.go:511 |
|
| 1900 | CF1747D | 分类讨论(部分题是易错题) | 结论 不变量 | 有 | copypasta/common.go:780 |
|
| 1900 | CF1759G | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 求字典序最小,通常可以从大往小思考 | 有 | copypasta/common.go:1000 |
|
| 1900 | CF1777D | 更多贡献法题目,见 monotone_stack.go | 树 | 有 | copypasta/common.go:853 |
|
| 1900 | CF1800F | 枚举右,维护左 | 异或 | 有 | copypasta/common.go:64 |
|
| 1900 | CF1823D | 构造 constructive algorithms | copypasta/common.go:666 |
|||
| 1900 | CF1854A2 | 构造 constructive algorithms | 分类讨论 | 有 | copypasta/common.go:667 |
|
| 1900 | CF1898D | 大量分类讨论 | 绝对值交换 | 有 | copypasta/common.go:820 |
|
| 1900 | CF1914F | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:781 |
||
| 1900 | CF1921F | 带权前缀和,权重是等差数列 | +分块 | 有 | copypasta/common.go:1592 |
|
| 1900 | CF1957D | 枚举中间 | 前后缀分解 从高到低思考 | 有 | copypasta/common.go:71 |
|
| 1900 | CF1957D | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:145 |
||
| 1900 | CF1969D | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:146 |
||
| 1900 | CF1991D | 思维:脑筋急转弯 | 图染色 x^y 是质数则有 x-y 边 | 有 | copypasta/common.go:548 |
|
| 1900 | CF1992F | 划分型贪心 | 划分区间,每个区间无法选一些数,乘积恰好等于 x | 有 | copypasta/common.go:397 |
|
| 1900 | CF2026D | 带权前缀和,权重是等差数列 | 有 | copypasta/common.go:1593 |
||
| 1900 | CF2040D | 构造 constructive algorithms | 树 相邻点权绝对差是非质数 | 有 | copypasta/common.go:668 |
|
| 1900 | CF2093G | 不定长滑动窗口:求最短/最小 | 有 | copypasta/common.go:185 |
||
| 1900 | CF2180C | 构造 constructive algorithms | 构造 XOR(a) = n 且 sum(a) 尽量大 | 有 | copypasta/common.go:669 |
|
| 1900 | CF2233D | 分类讨论(部分题是易错题) | 有简单做法,见我的代码 https://codeforces.com/problemset/submission/2233/385743570 | 有 | copypasta/common.go:782 |
|
| 2000 | CF109D | 非邻项交换(最小代价排序/字典序最小) | copypasta/common.go:474 |
|||
| 2000 | CF371E | 定长滑动窗口 | 有 | copypasta/common.go:166 |
||
| 2000 | CF515D | 构造 constructive algorithms | copypasta/common.go:670 |
|||
| 2000 | CF555B | 区间与点的最大匹配/覆盖问题 | 有 | copypasta/common.go:480 |
||
| 2000 | CF863E | 区间与点的最大匹配/覆盖问题 | 有 | copypasta/common.go:481 |
||
| 2000 | CF1088D | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:783 |
||
| 2000 | CF1426F | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:874 |
||
| 2000 | CF1558C | 构造 constructive algorithms | 有 | copypasta/common.go:671 |
||
| 2000 | CF1638D | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | copypasta/common.go:1001 |
|||
| 2000 | CF1744F | 思维:观察、结论 | 有 | copypasta/common.go:512 |
||
| 2000 | CF1763C | 思维:脑筋急转弯 | 有 | copypasta/common.go:549 |
||
| 2000 | CF1763C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:784 |
||
| 2000 | CF1788D | 更多贡献法题目,见 monotone_stack.go | 好题! | 有 | copypasta/common.go:854 |
|
| 2000 | CF1804D | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:374 |
||
| 2000 | CF1951D | 思维:观察、结论 | 构造一个商店价格序列,贪心购买,花费至多 n 元恰好买 k 个物品 | 有 | copypasta/common.go:513 |
|
| 2000 | CF1951D | 思维:脑筋急转弯 | 有 | copypasta/common.go:550 |
||
| 2000 | CF1951E | 分类讨论(部分题是易错题) | 把 s 划分成若干段,使得每一段都不是回文串 | 有 | copypasta/common.go:785 |
|
| 2000 | CF1978E | 分类讨论(部分题是易错题) | copypasta/common.go:786 |
|||
| 2000 | CF2051F | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:787 |
||
| 2000 | CF2146D2 | 构造 constructive algorithms | 重排使得 sum(p[i] | q[i]) 最大 | 有 | copypasta/common.go:672 |
|
| 2000 | CF2171E | 构造 constructive algorithms | 排列 相邻三数两两互质的情况 <= 6 | 有 | copypasta/common.go:673 |
|
| 2100 | CF356C | 大量分类讨论 | reverse-subarray-to-maximize-array-value | 有 | copypasta/common.go:822 |
|
| 2100 | CF571A | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:1002 |
||
| 2100 | CF912D | 更多贡献法题目,见 monotone_stack.go | copypasta/common.go:855 |
|||
| 2100 | CF1029E | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 树 | 有 | copypasta/common.go:375 |
|
| 2100 | CF1167E | 单序列双指针 | count-the-number-of-incremovable-subarrays-ii | 有 | copypasta/common.go:222 |
|
| 2100 | CF1278D | 常与树状数组、线段树、平衡树等数据结构结合 | 线段相交统计(栈) | the-skyline-problem rectangle-area-ii |
有 | copypasta/common.go:2578 |
| 2100 | CF1365F | 不变量(想一想,操作不会改变什么) | 仍然对称 | 有 | copypasta/common.go:714 |
|
| 2100 | CF1367F1 | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | copypasta/common.go:992 |
|||
| 2100 | CF1393D | ◣ 等腰直角三角形区域和 / ▲ 金字塔区域和 / ⯁ 菱形区域和 / 风车区域和 | count-fertile-pyramids-in-a-land | 有 | copypasta/common.go:1824 |
|
| 2100 | CF1479B2 | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | https://www.luogu.com.cn/blog/wsyhb/post-ti-xie-cf1479b1-painting-the-array-i | 有 | copypasta/common.go:376 |
|
| 2100 | CF1626D | 巧妙枚举 | number-of-ways-where-square-of-number-is-equal-to-product-of-two-numbers count-the-number-of-substrings-with-dominant-ones |
有 | copypasta/common.go:307 |
|
| 2100 | CF1710B | 金字塔式更新 +1 +2 +3 +4 +3 +2 +1 | copypasta/common.go:2101 |
|||
| 2100 | CF1775E | 不变量(想一想,操作不会改变什么) | 有点差分的味道,想想前缀和 | 有 | copypasta/common.go:715 |
|
| 2100 | CF1787E | 构造 constructive algorithms | 有 | copypasta/common.go:674 |
||
| 2100 | CF1808D | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:856 |
||
| 2100 | CF1811F | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:788 |
||
| 2100 | CF1821E | 合法括号字符串(Regular Bracket Sequence, RBS) | check-if-a-parentheses-string-can-be-valid | 有 | copypasta/common.go:919 |
|
| 2100 | CF1919D | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:1003 |
||
| 2100 | CF2037F | 差分数组 | 有 | copypasta/common.go:2057 |
||
| 2100 | CF2044H | 二维前缀和 | 二维带权前缀和 | 有 | copypasta/common.go:1650 |
|
| 2200 | CF369E | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:1004 |
||
| 2200 | CF520E | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:857 |
||
| 2200 | CF833B | 增量法 | 结合线段树优化 DP | total-appeal-of-a-string | 有 | copypasta/common.go:885 |
| 2200 | CF1110E | 横看成岭侧成峰 | 有 | copypasta/common.go:955 |
||
| 2200 | CF1208E | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:858 |
||
| 2200 | CF1234F | 不定长滑动窗口:求最长/最大 | 翻转至多一个任意子串后的无重复字符的最长子串 | minimum-operations-to-reduce-x-to-zero | 有 | copypasta/common.go:176 |
| 2200 | CF1789D | 构造 constructive algorithms | 推荐 位运算 把 X 变成 Y 不断靠近答案 | 有 | copypasta/common.go:675 |
|
| 2200 | CF1985H2 | 二维差分 | stamping-the-grid | 有 | copypasta/common.go:2209 |
|
| 2200 | CF2009G2 | 这里是定长滑窗,也支持不定长滑窗 | 有 | copypasta/common.go:2796 |
||
| 2200 | CF2101C | 部分题目也可以用状态机 DP 解决 | 式子变形可知,只需知道前缀所选数的下标,和后缀所选数的下标 | 有 | copypasta/common.go:147 |
|
| 2200 | CF2101C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 式子变形 | 有 | copypasta/common.go:377 |
|
| 2300 | CF294E | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:859 |
||
| 2300 | CF460D | 大量分类讨论 | reverse-subarray-to-maximize-array-value | 有 | copypasta/common.go:823 |
|
| 2300 | CF610D | 常与树状数组、线段树、平衡树等数据结构结合 | 统计水平方向的线段与垂直方向的线段的交点个数 | the-skyline-problem rectangle-area-ii |
有 | copypasta/common.go:2579 |
| 2300 | CF901C | 前缀和 | 有 | copypasta/common.go:1429 |
||
| 2300 | CF1285E | 常与树状数组、线段树、平衡树等数据结构结合 | 转换求解目标 | the-skyline-problem rectangle-area-ii |
有 | copypasta/common.go:2580 |
| 2300 | CF1379D | 常与树状数组、线段树、平衡树等数据结构结合 | rectangle-area-ii | 有 | copypasta/common.go:2581 |
|
| 2300 | CF1550D | 构造 constructive algorithms | 组合数学 | 有 | copypasta/common.go:676 |
|
| 2300 | CF1610E | 思维:观察、结论 | 有 | copypasta/common.go:514 |
||
| 2300 | CF1798E | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:789 |
||
| 2300 | CF2063E | 更多贡献法题目,见 monotone_stack.go | copypasta/common.go:860 |
|||
| 2400 | CF209C | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:790 |
||
| 2400 | CF220E | 单序列双指针 | 同向双指针 前缀+后缀 逆序对 | count-the-number-of-incremovable-subarrays-ii | 有 | copypasta/common.go:225 |
| 2400 | CF416D | 内层循环负责遍历组,找出这一组最远在哪结束。 | 推荐 | 有 | copypasta/common.go:293 |
|
| 2400 | CF416D | 分类讨论(部分题是易错题) | 推荐 | 有 | copypasta/common.go:791 |
|
| 2400 | CF679C | 定长滑动窗口 | 有 | copypasta/common.go:167 |
||
| 2400 | CF749E | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:861 |
||
| 2400 | CF798D | 数学思维 | 有 | copypasta/common.go:407 |
||
| 2400 | CF853D | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:378 |
||
| 2400 | CF908F | 分类讨论(部分题是易错题) | 红绿蓝连边,使得删除所有红或者所有蓝后,仍然连通 | copypasta/common.go:792 |
||
| 2400 | CF915F | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:862 |
||
| 2400 | CF1028E | 构造 constructive algorithms | 推荐 找特殊位置 | 有 | copypasta/common.go:677 |
|
| 2400 | CF1098C | 构造 constructive algorithms | 树 | copypasta/common.go:678 |
||
| 2400 | CF1237E | 思维:观察、结论 | todo 回顾 | 有 | copypasta/common.go:515 |
|
| 2400 | CF1244G | 构造 constructive algorithms | 有 | copypasta/common.go:679 |
||
| 2400 | CF1333E | 构造 constructive algorithms | 棋盘周游,车传送次数小于皇后(提示:把问题规模缩小为 n=3) | 有 | copypasta/common.go:680 |
|
| 2400 | CF1392F | 思维:观察、结论 | todo 回顾 | 有 | copypasta/common.go:516 |
|
| 2400 | CF1392F | 物理模拟 | 山体滑坡 | 有 | copypasta/common.go:899 |
|
| 2400 | CF1428F | 增量法 | count-unique-characters-of-all-substrings-of-a-given-string subarrays-distinct-element-sum-of-squares-ii |
有 | copypasta/common.go:889 |
|
| 2400 | CF1443E | 思维:脑筋急转弯 | 唬人 | 有 | copypasta/common.go:551 |
|
| 2400 | CF1450F | 或者说,每次删除两个不同元素,最多能删多少次? | maximum-number-of-weeks-for-which-you-can-work | 有 | copypasta/common.go:445 |
|
| 2400 | CF1527D | 大量分类讨论 | reverse-subarray-to-maximize-array-value | 有 | copypasta/common.go:824 |
|
| 2400 | CF1592E | 枚举右,维护左 | 子数组 AND > 子数组 XOR 的最长子数组 | 有 | copypasta/common.go:65 |
|
| 2400 | CF1592E | 前缀和与哈希表 | 子数组 AND > 子数组 XOR 的最长子数组 | subarray-sum-equals-k | 有 | copypasta/common.go:88 |
| 2400 | CF1592E | 思维:观察、结论 | 子数组 AND > 子数组 XOR 的最长子数组 | 有 | copypasta/common.go:517 |
|
| 2400 | CF1594F | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:793 |
||
| 2400 | CF1667C | 构造 constructive algorithms | 有 | copypasta/common.go:681 |
||
| 2400 | CF1736C2 | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:794 |
||
| 2400 | CF1761E | 构造 constructive algorithms | 有 | copypasta/common.go:682 |
||
| 2400 | CF1761E | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:795 |
||
| 2400 | CF1830C | 合法括号字符串(Regular Bracket Sequence, RBS) | check-if-a-parentheses-string-can-be-valid | 有 | copypasta/common.go:920 |
|
| 2400 | CF1832D2 | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:796 |
||
| 2400 | CF1837F | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:148 |
||
| 2400 | CF1852C | 差分数组 | 差分思想 | 有 | copypasta/common.go:2058 |
|
| 2400 | CF1887C | 差分数组 | 差分思想 | 有 | copypasta/common.go:2060 |
|
| 2400 | CF1969E | 划分型贪心 | 有 | copypasta/common.go:398 |
||
| 2400 | CF2005D | 部分题目也可以用状态机 DP 解决 | GCD logTrick | 有 | copypasta/common.go:149 |
|
| 2400 | CF2096E | 思维:观察、结论 | 通过操作 3 个连续位置,使逆序对为 0 | 有 | copypasta/common.go:518 |
|
| 2400 | CF2110F | 思维:观察、结论 | 有 | copypasta/common.go:519 |
||
| 2400 | CF2111F | 构造 constructive algorithms | 有 | copypasta/common.go:683 |
||
| 2400 | CF2118E | 构造 constructive algorithms | 网格染色,每次染色切比雪夫最远已染色点会惩罚一次,要求每个点的惩罚次数 <= 3 | 有 | copypasta/common.go:684 |
|
| 2500 | CF23C | 数学思维 | 有 | copypasta/common.go:406 |
||
| 2500 | CF297D | 构造 constructive algorithms | copypasta/common.go:685 |
|||
| 2500 | CF314D | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:150 |
||
| 2500 | CF407C | 差分数组 | k 阶差分 | 有 | copypasta/common.go:2061 |
|
| 2500 | CF442C | 无论如何,这样交换都不会使答案变小,因此前 k 大的数一定可以作为最大值。 | 有 | copypasta/common.go:379 |
||
| 2500 | CF501E | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:797 |
||
| 2500 | CF613C | 构造 constructive algorithms | 构造环形字符串,使得断开后是回文串的断点位置尽量多(提示:旋转对称性,周期) | 有 | copypasta/common.go:686 |
|
| 2500 | CF825G | 思维:脑筋急转弯 | 树 | 有 | copypasta/common.go:552 |
|
| 2500 | CF835F | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:151 |
||
| 2500 | CF884F | 或者说,每次删除两个不同元素,最多能删多少次? | maximum-number-of-weeks-for-which-you-can-work | 有 | copypasta/common.go:446 |
|
| 2500 | CF946G | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:152 |
||
| 2500 | CF976D | 构造 constructive algorithms | copypasta/common.go:687 |
|||
| 2500 | CF989D | 双序列双指针 | 黑盒装着两朵云,风吹着盒子移动 | 有 | copypasta/common.go:242 |
|
| 2500 | CF1030F | 【思考题】插入一个数再选定一个 x,每次操作 +x/-x,计算最小操作次数 | 带权中位数 + 单点修改 + 区间查询 | 有 | copypasta/common.go:422 |
|
| 2500 | CF1301E | 二维前缀和 | 扩展思考:如果是菱形怎么做 | 有 | copypasta/common.go:1651 |
|
| 2500 | CF1374E2 | 大量分类讨论 | reverse-subarray-to-maximize-array-value | 有 | copypasta/common.go:825 |
|
| 2500 | CF1375E | 构造 constructive algorithms | 交换所有逆序对完成排序 提示:借鉴冒泡排序 | 有 | copypasta/common.go:688 |
|
| 2500 | CF1407E | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 节点涂色 堵路 最大化最短路长度 | 有 | copypasta/common.go:1005 |
|
| 2500 | CF1418G | 状态压缩前缀和(异或) | 有 | copypasta/common.go:110 |
||
| 2500 | CF1474E | 构造 constructive algorithms | 有 | copypasta/common.go:689 |
||
| 2500 | CF1559D2 | 构造 constructive algorithms | 有 | copypasta/common.go:690 |
||
| 2500 | CF1612G | 排序不等式 | 有 | copypasta/common.go:430 |
||
| 2500 | CF1673E | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:863 |
||
| 2500 | CF1677D | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:1006 |
||
| 2500 | CF1689E | 构造 constructive algorithms | 脑筋急转弯 | 有 | copypasta/common.go:691 |
|
| 2500 | CF1701E | 部分题目也可以用状态机 DP 解决 | DP / 也可以用状态机 DP,那样无需前后缀分解 | 有 | copypasta/common.go:153 |
|
| 2500 | CF2117H | 前缀和 | copypasta/common.go:80 |
|||
| 2500 | CF2140E2 | 更多贡献法题目,见 monotone_stack.go | minmax 状压 DP x = sum_{i=1}^m [x >= i] | 有 | copypasta/common.go:864 |
|
| 2600 | CF3D | 合法括号字符串(Regular Bracket Sequence, RBS) | 反悔贪心(反悔堆) | check-if-a-parentheses-string-can-be-valid | 有 | copypasta/common.go:921 |
| 2600 | CF10E | 构造 constructive algorithms | Greedy Change todo | 有 | copypasta/common.go:692 |
|
| 2600 | CF599E | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:799 |
||
| 2600 | CF622F | 部分题目也可以用状态机 DP 解决 | 有 | copypasta/common.go:154 |
||
| 2600 | CF1016F | 分类讨论(部分题是易错题) | copypasta/common.go:800 |
|||
| 2600 | CF1227G | 构造 constructive algorithms | 证明是亮点 | 有 | copypasta/common.go:693 |
|
| 2600 | CF1380G | 排序不等式 | 放 k 个宝箱怪 | 有 | copypasta/common.go:431 |
|
| 2600 | CF1446D1 | 前缀和与哈希表 | 转换 | subarray-sum-equals-k | 有 | copypasta/common.go:89 |
| 2600 | CF1592F1 | EXTRA: 计算矩阵 a 的二维差分矩阵 d | 有 | copypasta/common.go:2237 |
||
| 2600 | CF1835C | 枚举右,维护左 | 四数异或为 0 | 有 | copypasta/common.go:66 |
|
| 2600 | CF2004F | 思维:观察、结论 | 有 | copypasta/common.go:520 |
||
| 2600 | CF2004F | 更多贡献法题目,见 monotone_stack.go | 有 | copypasta/common.go:865 |
||
| 2700 | CF339E | 巧妙枚举 | number-of-ways-where-square-of-number-is-equal-to-product-of-two-numbers count-the-number-of-substrings-with-dominant-ones |
有 | copypasta/common.go:308 |
|
| 2700 | CF780G | 物理模拟 | 小球下落 | 有 | copypasta/common.go:900 |
|
| 2700 | CF1422E | 分类讨论(部分题是易错题) | LCS | 有 | copypasta/common.go:801 |
|
| 2700 | CF1521E | 或者说,每次删除两个不同元素,最多能删多少次? | 二维+对角不同 | maximum-number-of-weeks-for-which-you-can-work | 有 | copypasta/common.go:447 |
| 2700 | CF1521E | 构造 constructive algorithms | 二维相邻不同 | 有 | copypasta/common.go:694 |
|
| 2700 | CF1601D | 如果 x>=y<=z,那么删除 y 最优 | 有 | copypasta/common.go:382 |
||
| 2700 | CF1601D | 交换论证法 | 有 | copypasta/common.go:402 |
||
| 2700 | CF1634F | 差分数组 | 差分思想 | 有 | copypasta/common.go:2062 |
|
| 2700 | CF1730E | 分类讨论(部分题是易错题) | 有 | copypasta/common.go:802 |
||
| 2800 | CF79D | 差分数组 | 差分思想 | 有 | copypasta/common.go:2063 |
|
| 2900 | CF505E | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:1007 |
||
| 3000 | CF1838F | 构造 constructive algorithms | 交互 二分 | 有 | copypasta/common.go:695 |
|
| CF163E | 在特殊情况下,改为手动模拟栈可以减少 > 100MB 的内存 | 有 | copypasta/common.go:1086 |
|||
| CF165C | 多指针 | copypasta/common.go:216 |
||||
| CF190D | 多指针 | 计算有多少子数组,其中有至少 k 个相同的数 | 有 | copypasta/common.go:215 |
||
| CF243B | a b 必须是有序的(可以为空) | 有 | copypasta/common.go:2306 |
|||
| CF246A | 邻项交换法(最小代价排序/字典序最小) Exchange Arguments | 900 | minimum-initial-energy-to-finish-tasks | 有 | copypasta/common.go:459 |
|
| CF266C | 相邻 传递性 | 有 | copypasta/common.go:1021 |
|||
| CF279B | 多指针 | 入门题 | copypasta/common.go:205 |
|||
| CF301D | 这样可以将复杂度从 O(n^2) 降低到 O(n) 或 O(nlogn) | 有 | copypasta/common.go:941 |
|||
| CF351E | 横看成岭侧成峰 | maximum-number-of-ones minimum-number-of-increments-on-subarrays-to-form-a-target-array |
有 | copypasta/common.go:972 |
||
| CF412D | 相邻 传递性 | 有 | copypasta/common.go:1020 |
|||
| CF448C | 每次取数组中大于 0 的连续一段同时减 1,求使数组全为 0 的最少操作次数 | minimum-number-of-increments-on-subarrays-to-form-a-target-array | 有 | copypasta/common.go:451 |
||
| CF486D | 异类双变量:固定某变量统计另一变量的 [0,n) | 有 | copypasta/common.go:932 |
|||
| CF521D | 其他 | copypasta/common.go:904 |
||||
| CF587C | 合并有序数组,保留至多 k 个元素 | 有 | copypasta/common.go:1312 |
|||
| CF602B | 多指针 | 入门题 | 有 | copypasta/common.go:204 |
||
| CF702B | 枚举右,维护左 | two-sum | 有 | copypasta/common.go:46 |
||
| CF707D | 和莫队类似,通过改变查询的顺序来优化复杂度 | 有 | copypasta/common.go:1045 |
|||
| CF763B | 奇偶性 | 有 | copypasta/common.go:1010 |
|||
| CF895B | 多指针 | copypasta/common.go:213 |
||||
| CF977C | 算法的平均比较次数为 ~2n+2kln(n/k)+2(n-k)ln(n/(n-k)) | kth-largest-element-in-an-array k-closest-points-to-origin |
有 | copypasta/common.go:2538 |
||
| CF1009E | 横看成岭侧成峰 | 有 | copypasta/common.go:961 |
|||
| CF1045G | 如果不要求下标连续,也可以不去重 | 有 | copypasta/common.go:2419 |
|||
| CF1101B | 字符串基础 | 有 | copypasta/common.go:34 |
|||
| CF1141E | EXTRA: 青蛙跳井 | 有 | copypasta/common.go:1544 |
|||
| CF1151E | 横看成岭侧成峰 | 有 | copypasta/common.go:963 |
|||
| CF1188C | 「恰好」转换成「至少/至多」 | 有 | copypasta/common.go:1028 |
|||
| CF1194E | 这样可以将复杂度从 O(n^2) 降低到 O(n) 或 O(nlogn) | 有 | copypasta/common.go:938 |
|||
| CF1208B | 多指针 | 有 | copypasta/common.go:211 |
|||
| CF1209E2 | 复杂度为 O(1+2+4+…+2^(n-1)) = O(2^n) | 有 | copypasta/common.go:1341 |
|||
| CF1254B2 | 双变量+下取整:枚举分母,然后枚举分子的范围,使得在该范围内的分子/分母是一个定值 | https://ac.nowcoder.com/acm/contest/7612/C | sum-of-floored-pairs | 有 | copypasta/common.go:949 |
|
| CF1270E | 奇偶性 | 有 | copypasta/common.go:1011 |
|||
| CF1284C | 横看成岭侧成峰 | copypasta/common.go:965 |
||||
| CF1296C | 状态压缩前缀和(异或) | find-longest-subarray-lcci | 有 | copypasta/common.go:115 |
||
| CF1311F | 利用每个数产生的贡献计算 ∑|ai-aj|, i!=j | 有 | copypasta/common.go:2039 |
|||
| CF1332E | 奇偶性 | 配对法:将合法局面与非法局面配对 | 有 | copypasta/common.go:1012 |
||
| CF1365C | 横看成岭侧成峰 | 有 | copypasta/common.go:954 |
|||
| CF1367F2 | 横看成岭侧成峰 | maximum-number-of-ones minimum-number-of-increments-on-subarrays-to-form-a-target-array |
有 | copypasta/common.go:970 |
||
| CF1381B | 横看成岭侧成峰 | 有 | copypasta/common.go:966 |
|||
| CF1394B | 集合哈希 | 有 | copypasta/common.go:1040 |
|||
| CF1430D | 其他 | 有 | copypasta/common.go:903 |
|||
| CF1483D | 这样可以将复杂度从 O(n^2) 降低到 O(n) 或 O(nlogn) | copypasta/common.go:939 |
||||
| CF1490G | EXTRA: 青蛙跳井 | 有 | copypasta/common.go:1545 |
|||
| CF1510K | 见微知著:考察单个点的规律,从而推出全局规律 | copypasta/common.go:1024 |
||||
| CF1517C | 相邻 传递性 | 有 | copypasta/common.go:1019 |
|||
| CF1582E | 相邻 传递性 | 有 | copypasta/common.go:1016 |
|||
| CF1665E | 合并有序数组,保留至多 k 个元素 | 有 | copypasta/common.go:1313 |
|||
| CF1695C | 连续性 + 上下界 | 有 | copypasta/common.go:929 |
|||
| CF1706D2 | 双变量+下取整:枚举分母,然后枚举分子的范围,使得在该范围内的分子/分母是一个定值 | sum-of-floored-pairs | 有 | copypasta/common.go:946 |
||
| CF1748C | 前缀和与有序集合 | count-odd-numbers-in-an-interval-range | 有 | copypasta/common.go:103 |
||
| CF1765D | 多指针 | 有 | copypasta/common.go:212 |
|||
| CF1779D | 横看成岭侧成峰 | 改成修改长为 x 的数组? | copypasta/common.go:958 |
|||
| CF1830A | 横看成岭侧成峰 | maximum-number-of-ones minimum-number-of-increments-on-subarrays-to-form-a-target-array |
有 | copypasta/common.go:971 |
||
| CF1830B | 这样可以将复杂度从 O(n^2) 降低到 O(n) 或 O(nlogn) | 有 | copypasta/common.go:942 |
|||
| CF1833F | 多指针 | copypasta/common.go:214 |
||||
| CF1848A | 横看成岭侧成峰 | minimum-time-to-visit-a-cell-in-a-grid | copypasta/common.go:976 |
|||
| CF1864D | 原理见上面的 rhombusSum | 也有更简单的做法 | 有 | copypasta/common.go:2265 |
||
| CF1882B | 逆向思维 / 正难则反(不可行方案通常比可行方案好求) | 有 | copypasta/common.go:993 |
|||
| CF1927B | 枚举右,维护左 | 900 | number-of-good-pairs sum-of-digit-differences-of-all-pairs |
copypasta/common.go:49 |
||
| CF1927B | 构造 constructive algorithms | 900 | copypasta/common.go:582 |
|||
| CF1977C | 枚举答案 | 有 | copypasta/common.go:579 |
|||
| CF2044H | 带权前缀和,权重是等差数列 | 有 | copypasta/common.go:1594 |
|||
| CF2049A | 思维:脑筋急转弯 | 800 | copypasta/common.go:525 |
|||
| CF2093D | 分治思维 | 有 | copypasta/common.go:979 |
|||
| CF104821M | 部分题目也可以用状态机 DP 解决 | trapping-rain-water | copypasta/common.go:120 |
|||
| CF105139L | 分类讨论(部分题是易错题) | copypasta/common.go:803 |
交互题
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1300 | CF1807E | ## 二分 | 数组 | copypasta/interactive.go:14 |
||
| 1400 | CF679A | ## 数论 | 判断质数 | 有 | copypasta/interactive.go:93 |
|
| 1400 | CF727C | ## 数组/字符串 思维 构造 | 有 | copypasta/interactive.go:46 |
||
| 1400 | CF1167B | ## 基础 | 有 | copypasta/interactive.go:9 |
||
| 1400 | CF2013C | ## 数组/字符串 思维 构造 | 有 | copypasta/interactive.go:47 |
||
| 1500 | CF1999G1 | ## 二分 | 有 | copypasta/interactive.go:15 |
||
| 1500 | CF2001C | ## 树 | 二分 | 有 | copypasta/interactive.go:77 |
|
| 1600 | CF1407C | ## 数组/字符串 思维 构造 | 有 | copypasta/interactive.go:48 |
||
| 1600 | CF1698D | ## 二分 | 有 | copypasta/interactive.go:16 |
||
| 1600 | CF2037E | ## 数组/字符串 思维 构造 | 有 | copypasta/interactive.go:49 |
||
| 1600 | CF2074E | ## 随机 | copypasta/interactive.go:65 |
|||
| 1700 | CF1146C | ## 树 | 二分 直径 | 有 | copypasta/interactive.go:78 |
|
| 1700 | CF1479A | ## 二分 | 数组(同 LC162) | 有 | copypasta/interactive.go:17 |
|
| 1700 | CF1503B | ## 其他 | 构造、棋盘染色 | 有 | copypasta/interactive.go:99 |
|
| 1700 | CF1934C | ## 数组/字符串 思维 构造 | 网格图 | 有 | copypasta/interactive.go:50 |
|
| 1700 | CF1999G2 | ## 二分 | 三分 | 有 | copypasta/interactive.go:18 |
|
| 1800 | CF730B | ## 数组/字符串 思维 构造 | C++ std::minmax 源码 | 有 | copypasta/interactive.go:51 |
|
| 1800 | CF1010B | ## 二分 | 有 | copypasta/interactive.go:19 |
||
| 1800 | CF1534D | ## 树 | 奇偶 | 有 | copypasta/interactive.go:79 |
|
| 1800 | CF1556D | ## 位运算 | 有 | copypasta/interactive.go:34 |
||
| 1800 | CF1729E | ## 随机 | 进阶问题:保证 q(a,b) = q(b,a) | 有 | copypasta/interactive.go:66 |
|
| 1800 | CF1780D | ## 位运算 | 有 | copypasta/interactive.go:35 |
||
| 1900 | CF1044B | ## 树 | copypasta/interactive.go:80 |
|||
| 1900 | CF1063C | ## 二分 | 有 | copypasta/interactive.go:21 |
||
| 1900 | CF1207E | ## 位运算 | 脑筋急转弯 | 有 | copypasta/interactive.go:36 |
|
| 1900 | CF1305D | ## 树 | LCA 排除法 拓扑排序 | 有 | copypasta/interactive.go:81 |
|
| 1900 | CF1486C2 | ## 二分 | 数组 | 有 | copypasta/interactive.go:22 |
|
| 1900 | CF1697D | ## 二分 | 有 | copypasta/interactive.go:23 |
||
| 1900 | CF2038G | ## 数组/字符串 思维 构造 | 有 | copypasta/interactive.go:52 |
||
| 2000 | CF843B | ## 随机 | 数组 链表 | 有 | copypasta/interactive.go:67 |
|
| 2000 | CF896B | ## 数组/字符串 思维 构造 | 有 | copypasta/interactive.go:53 |
||
| 2000 | CF1088D | ## 位运算 | 有 | copypasta/interactive.go:37 |
||
| 2000 | CF1103B | ## 二分 | 倍增 + 二分 | 有 | copypasta/interactive.go:24 |
|
| 2000 | CF1521C | ## 数组/字符串 思维 构造 | copypasta/interactive.go:54 |
|||
| 2000 | CF1624F | ## 二分 | 动态二分 | 有 | copypasta/interactive.go:25 |
|
| 2000 | CF1634D | ## 数组/字符串 思维 构造 | 有 | copypasta/interactive.go:55 |
||
| 2000 | CF1815B | ## 图 | copypasta/interactive.go:87 |
|||
| 2100 | CF1023E | ## 数组/字符串 思维 构造 | 网格图 | 有 | copypasta/interactive.go:56 |
|
| 2100 | CF1363D | ## 二分 | 有 | copypasta/interactive.go:26 |
||
| 2200 | CF713B | ## 二分 | 分类讨论 | 有 | copypasta/interactive.go:27 |
|
| 2200 | CF1114E | ## 随机 | 数论 | 有 | copypasta/interactive.go:68 |
|
| 2200 | CF1155E | ## 数论 | 拉格朗日插值 | 有 | copypasta/interactive.go:94 |
|
| 2200 | CF1498E | ## 图 | 竞赛图 SCC | 有 | copypasta/interactive.go:88 |
|
| 2200 | CF1520F2 | ## 二分 | copypasta/interactive.go:28 |
|||
| 2200 | CF1918E | ## 其他 | 快排 | copypasta/interactive.go:100 |
||
| 2300 | CF1451E2 | ## 位运算 | copypasta/interactive.go:38 |
|||
| 2300 | CF1534E | ## 位运算 | 有 | copypasta/interactive.go:39 |
||
| 2400 | CF835E | ## 位运算 | 有 | copypasta/interactive.go:40 |
||
| 2400 | CF1137D | ## 其他 | 快慢指针 | 有 | copypasta/interactive.go:101 |
|
| 2400 | CF1174F | ## 树 | 有 | copypasta/interactive.go:82 |
||
| 2400 | CF1205C | ## 数组/字符串 思维 构造 | 网格图 | 有 | copypasta/interactive.go:57 |
|
| 2400 | CF1617D2 | ## 数组/字符串 思维 构造 | copypasta/interactive.go:58 |
|||
| 2400 | CF1839E | ## DP | 有 | copypasta/interactive.go:73 |
||
| 2400 | CF1934D2 | ## 位运算 | 有 | copypasta/interactive.go:41 |
||
| 2500 | CF1470C | ## 其他 | 打表找规律 | linked-list-cycle-ii | 有 | copypasta/interactive.go:103 |
| 2500 | CF1840G2 | ## 随机 | 有 | copypasta/interactive.go:69 |
||
| 2500 | CF2163D2 | ## 二分 | copypasta/interactive.go:29 |
|||
| 2600 | CF1355F | ## 数论 | 有 | copypasta/interactive.go:95 |
||
| 2600 | CF2109C3 | ## 数组/字符串 思维 构造 | 数学 加减乘除数位和 从 X 到 Y | 有 | copypasta/interactive.go:59 |
|
| 2700 | CF1370F2 | ## 树 | copypasta/interactive.go:83 |
|||
| 2700 | CF1514E | ## 图 | 竞赛图 SCC | 有 | copypasta/interactive.go:89 |
|
| 2800 | CF1365G | ## 位运算 | 有 | copypasta/interactive.go:42 |
||
| 2800 | CF1826F | ## 其他 | 数学 | linked-list-cycle-ii | 有 | copypasta/interactive.go:104 |
| 3000 | CF1838F | ## 二分 | 有 | copypasta/interactive.go:30 |
||
| CF2168B | ## 二分 | ~1800 通信题 | 有 | copypasta/interactive.go:20 |
测试与随机化
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1900 | CF1689D | 随机 | https://www.luogu.com.cn/blog/wangxiwen/solution-cf1689d | 有 | copypasta/rand.go:13 |
|
| 2000 | CF843B | 交互 | 有 | copypasta/rand.go:38 |
||
| 2200 | CF1114E | 交互 | 有 | copypasta/rand.go:39 |
||
| 2200 | CF1996G | 异或哈希 xor hashing | 有 | copypasta/rand.go:30 |
||
| 2300 | CF995C | 随机 | 有 | copypasta/rand.go:14 |
||
| 2300 | CF1314D | 随机 | 推荐 | 有 | copypasta/rand.go:15 |
|
| 2400 | CF869E | 多项式哈希 加法哈希 | 有 | copypasta/rand.go:35 |
||
| 2400 | CF1523D | 随机 | 有 | copypasta/rand.go:16 |
||
| 2400 | CF1830C | 异或哈希 xor hashing | 有 | copypasta/rand.go:31 |
||
| 2500 | CF1305F | 随机 | 数论 | 有 | copypasta/rand.go:17 |
|
| 2500 | CF1771F | 异或哈希 xor hashing | 主席树 | 有 | copypasta/rand.go:32 |
|
| 2700 | CF995E | 随机 | 有 | copypasta/rand.go:18 |
||
| 2800 | CF1746F | 随机映射 | copypasta/rand.go:27 |
|||
| 2900 | CF364D | 随机 | copypasta/rand.go:19 |
|||
| 2900 | CF1198F | 随机 | 有 | copypasta/rand.go:20 |
杂项
| 难度 | 题目 | 专题 | 备注 | 相关 LeetCode | 源码 | 索引来源 |
|---|---|---|---|---|---|---|
| 1400 | CF1974D | 有思路但是不好实现 | 有 | copypasta/awesome_code_reviews.go:4 |
||
| 1500 | CF1066B | 注:对于复杂变形题,采用分组循环不易写错 | 这题其实不算,但如果每个加热器的 r 不同,就是跳跃游戏 II 了 | minimum-number-of-taps-to-open-to-water-a-garden minimum-number-of-taps-to-open-to-water-a-garden |
有 | copypasta/misc.go:1217 |
| 1500 | CF1101C | 合并 a 中所有重叠的闭区间 | merge-intervals | 有 | copypasta/misc.go:1239 |
|
| 1500 | CF1181B | 高精度 | copypasta/big.go:15 |
|||
| 1600 | CF1781C | 有思路但是不好实现 | 有 | copypasta/awesome_code_reviews.go:5 |
||
| 1600 | CF1861C | 有思路但是不好实现 | 有 | copypasta/awesome_code_reviews.go:6 |
||
| 1600 | CF2132D | 例如 k=1 就是小数点后第 1 位,即 1 | 前 k 项和 | copypasta/misc.go:928 |
||
| 1657 | CF243E | 占坑待填 | https://blog.aor.sd.cn/archives// | copypasta/pq_tree.go:8 |
||
| 1700 | CF983A | b must not be zero | fraction-to-recurring-decimal | copypasta/misc.go:591 |
||
| 1700 | CF1626C | 合并 a 中所有重叠的闭区间 | merge-intervals | 有 | copypasta/misc.go:1240 |
|
| 1800 | CF1859D | 合并 a 中所有重叠的闭区间 | merge-intervals | 有 | copypasta/misc.go:1242 |
|
| 1900 | CF1260D | 合并 a 中所有重叠的闭区间 | merge-intervals | 有 | copypasta/misc.go:1243 |
|
| 2000 | CF1244C | 高精度 | 有 | copypasta/big.go:16 |
||
| 2200 | CF1630C | 注:对于复杂变形题,采用分组循环不易写错 | 变形 | minimum-number-of-taps-to-open-to-water-a-garden minimum-number-of-taps-to-open-to-water-a-garden |
有 | copypasta/misc.go:1216 |
| CF11B | 原地哈希 | find-all-duplicates-in-an-array | 有 | copypasta/misc.go:34 |
||
| CF375B | 如果输入按照行来读入更方便的话…… | 有 | copypasta/io.go:276 |
|||
| CF547A | 1<=next[i]<=n | 有 | copypasta/misc.go:98 |
|||
| CF663A | 小结论:把 n 用 m 等分,得到 m-n%m 个 n/m 和 n%m 个 n/m+1 | 有 | copypasta/misc.go:133 |
|||
| CF691B | 编程技巧 | 有 | copypasta/awesome_code_reviews.go:11 |
|||
| CF700A | 小奥 | copypasta/misc.go:21 |
||||
| CF825B | 五子棋 | copypasta/misc.go:71 |
||||
| CF960B | 不能把 a[i] 改成负数 | 有 | copypasta/misc.go:1001 |
|||
| CF1034B | 原地哈希 | 有 | copypasta/misc.go:53 |
|||
| CF1137D | Floyd 判圈算法 | 有 | copypasta/misc.go:116 |
|||
| CF1203F1 | 括号拼接 | 有 | copypasta/misc.go:202 |
|||
| CF1278B | 原地哈希 | 有 | copypasta/misc.go:35 |
|||
| CF1381B | max record pos | 有 | copypasta/misc.go:120 |
|||
| CF1419E | dfs(0, 0, 0, 0) | gray-code minimum-one-bit-operations-to-make-integers-zero |
有 | copypasta/misc.go:480 |
||
| CF1483B | 在 a 上不断循环合并直至没有可以合并的相邻元素,返回删除的元素 | 有 | copypasta/misc.go:342 |
|||
| CF1511E | 原地哈希 | copypasta/misc.go:56 |
||||
| CF1552I | 占坑待填 | copypasta/pq_tree.go:10 |
||||
| CF1904E | top tree | copypasta/top_tree.go:11 |
||||
| CF1907C | 从特殊到一般 | 有 | copypasta/cp.go:14 |
|||
| CF101341A | 括号拼接 | 有 | copypasta/misc.go:200 |
|||
| CF101955K | 思路:用递推公式,自底向上计算 | yuan-quan-zhong-zui-hou-sheng-xia-de-shu-zi-lcof find-the-winner-of-the-circular-game |
copypasta/misc.go:832 |
代码随想录算法路线补充
来源:代码随想录算法学习路线。该站点可直接访问;本节按其算法类型整理文章链接,未提供统一难度,因此保留路线顺序。
- 补充算法类型:14
- 补充文章链接:297
| 类型 | 链接数 |
|---|---|
| 算法基础 | 8 |
| 数组 | 10 |
| 链表 | 9 |
| 哈希表 | 11 |
| 字符串 | 9 |
| 双指针法 | 2 |
| 栈与队列 | 10 |
| 二叉树 | 35 |
| 回溯算法 | 22 |
| 贪心算法 | 25 |
| 动态规划 | 55 |
| 单调栈 | 6 |
| 图论 | 33 |
| 学习体系补充文章 | 62 |
代码随想录-算法基础
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 算法基础学习路线 | 代码随想录 |
| 2 | 刷了这么多题,你了解自己代码的内存消耗么? | 内存管理;栈区;堆区;内存对齐 |
| 3 | 递归算法的时间与空间复杂度分析! | 递归算法;斐波那契数列;二分法 |
| 4 | 通过一道面试题目,讲一讲递归算法的时间复杂度! | 递归算法;时间复杂度;二叉树 |
| 5 | 空间复杂度分析 | 空间复杂度;内存空间;递归 |
| 6 | On的算法居然超时了,此时的n究竟是多大? | 时间复杂度;超时分析 |
| 7 | 究竟什么时候用库函数,什么时候要自己实现 | 库函数;内部实现原理;时间复杂度 |
| 8 | 关于时间复杂度,你不知道的都在这里! | 时间复杂度;大O表示法;数据规模 |
代码随想录-数组
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 27. 移除元素 | 双指针法;原地覆盖 |
| 2 | 209.长度最小的子数组 | 滑动窗口;连续子数组 |
| 3 | 59.螺旋矩阵II | 螺旋矩阵;模拟;循环不变量 |
| 4 | 数组学习路线 | 代码随想录 |
| 5 | 44. 开发商购买土地 | 前缀和;矩阵划分 |
| 6 | 数组理论基础 | 数组;连续内存空间;下标索引 |
| 7 | 数组总结篇 | 二分法;双指针法;滑动窗口 |
| 8 | 58. 区间和 | 前缀和;区间查询 |
| 9 | 704. 二分查找 | 二分查找;有序数组;循环不变量 |
| 10 | 977.有序数组的平方 | 双指针;有序数组;平方排序 |
代码随想录-链表
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 19.删除链表的倒数第N个节点 | 双指针;虚拟头节点 |
| 2 | 206.反转链表 | 双指针法;递归法;指针反转 |
| 3 | 双指针技巧:链表相交问题(力扣 160 链表相交) | |
| 4 | 203.移除链表元素 | 链表;虚拟头节点 |
| 5 | 链表学习路线 | 代码随想录 |
| 6 | 关于链表,你该了解这些! | 链表;指针;节点 |
| 7 | 707.设计链表 | 虚拟头节点;双链表 |
| 8 | 链表总结篇 | 虚拟头结点;双指针法;反转链表 |
| 9 | 142.环形链表II | 快慢指针;环入口查找 |
代码随想录-哈希表
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 第15题. 三数之和 | 双指针;哈希法;去重 |
| 2 | 第202题. 快乐数 | 哈希法;集合;无限循环检测 |
| 3 | 383. 赎金信 | 哈希法;数组 |
| 4 | 第454题.四数相加II | 哈希表;map;统计查找 |
| 5 | 第18题. 四数之和 | 双指针法;剪枝去重 |
| 6 | 242.有效的字母异位词 | 哈希表;数组;字符统计 |
| 7 | 哈希表理论基础 | 哈希表;哈希函数;哈希碰撞 |
| 8 | 哈希表总结篇 | 哈希表;哈希函数;哈希碰撞 |
| 9 | 哈希表学习路线 | 代码随想录 |
| 10 | 1. 两数之和|哈希表 Map 解法|O(n)时间复杂度|数组查找算法核心技巧 | |
| 11 | 349. 两个数组的交集 | 哈希表;集合 |
代码随想录-字符串
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 344.反转字符串 | 双指针;原地修改 |
| 2 | 28. 实现 strStr() | KMP;前缀表;字符串匹配 |
| 3 | 541. 反转字符串II | 字符串反转;分段处理 |
| 4 | 459.重复的子字符串 | KMP算法;重复子串;最长相同前后缀 |
| 5 | 151.翻转字符串里的单词 | 双指针;字符串反转;单词翻转 |
| 6 | 字符串:总结篇 | 双指针法;KMP;前缀表 |
| 7 | 字符串学习路线 | 代码随想录 |
| 8 | 替换数字 | 双指针;字符串替换;数组填充 |
| 9 | 右旋字符串 | 整体反转;局部反转 |
代码随想录-双指针法
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 双指针法学习路线 | 代码随想录 |
| 2 | 双指针总结篇 | 双指针法;快慢指针 |
代码随想录-栈与队列
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 150. 逆波兰表达式求值 | 栈;后缀表达式 |
| 2 | 225. 用队列实现栈 | 队列;栈;模拟 |
| 3 | 20. 有效的括号 | 栈;括号匹配;对称匹配 |
| 4 | 232.用栈实现队列 | 栈;队列;模拟 |
| 5 | 347.前 K 个高频元素 | 哈希表;小顶堆;优先级队列 |
| 6 | 单调队列模板题:滑动窗口最大值(力扣239) | |
| 7 | 栈与队列总结篇 | 栈与队列;单调队列;优先级队列 |
| 8 | 栈与队列学习路线 | 代码随想录 |
| 9 | 栈与队列理论基础 | 栈;队列;容器适配器 |
| 10 | 1047. 删除字符串中的所有相邻重复项 | 栈;相邻重复项;匹配问题 |
代码随想录-二叉树
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 98.验证二叉搜索树 | 中序遍历;递归;二叉搜索树 |
| 2 | 递归后序遍历:对称二叉树判断(力扣101 对称二叉树) | |
| 3 | 104.二叉树的最大深度 | 递归法;层序遍历 |
| 4 | 106.从中序与后序遍历序列构造二叉树 | 中序遍历;后序遍历;递归 |
| 5 | 二叉树层序遍历登场! | 层序遍历;广度优先遍历;队列 |
| 6 | 108.将有序数组转换为二叉搜索树 | 二叉搜索树;高度平衡;递归迭代 |
| 7 | 110.平衡二叉树 | 后序遍历;高度差;递归 |
| 8 | 112. 路径总和 | 深度优先遍历;回溯 |
| 9 | 222.完全二叉树的节点个数 | 完全二叉树;递归;深度比较 |
| 10 | 226.翻转二叉树 | 翻转二叉树;遍历交换 |
| 11 | 235. 二叉搜索树的最近公共祖先 | 二叉搜索树;最近公共祖先;有序性 |
| 12 | 111.二叉树的最小深度 | 二叉树;最小深度;遍历 |
| 13 | 236. 二叉树的最近公共祖先 | 二叉树;后序遍历;回溯 |
| 14 | 递归回溯:二叉树路径问题(力扣257 二叉树的所有路径) | |
| 15 | 450.删除二叉搜索树中的节点 | 二叉搜索树;删除节点;结构调整 |
| 16 | 501.二叉搜索树中的众数 | 二叉搜索树;中序遍历;双指针 |
| 17 | 513.找树左下角的值 | 递归回溯;层序遍历 |
| 18 | 538.把二叉搜索树转换为累加树 | 二叉搜索树;累加树;反中序遍历 |
| 19 | 530.二叉搜索树的最小绝对差 | 二叉搜索树;中序遍历;有序数组 |
| 20 | 654.最大二叉树 | 最大二叉树;递归 |
| 21 | 617.合并二叉树 | 递归;迭代;二叉树 |
| 22 | 404.左叶子之和 | 二叉树;左叶子;递归迭代 |
| 23 | 669. 修剪二叉搜索树 | 修剪二叉搜索树;递归;迭代 |
| 24 | 700.二叉搜索树中的搜索 | 二叉搜索树;递归;迭代 |
| 25 | 二叉树学习路线 | 代码随想录 |
| 26 | 二叉树:总结篇!(需要掌握的二叉树技能都在这里了) | 递归;迭代;深度优先遍历 |
| 27 | 701.二叉搜索树中的插入操作 | 二叉搜索树;插入操作;递归迭代 |
| 28 | 二叉树的递归遍历 | 递归;二叉树遍历 |
| 29 | 二叉树的统一迭代法 | 统一迭代法;栈;二叉树遍历 |
| 30 | 二叉树的迭代遍历 | 迭代法;栈;二叉树遍历 |
| 31 | 本周小结!(二叉树系列三) | |
| 32 | 本周小结!(二叉树系列二) | |
| 33 | 二叉树理论基础篇 | 二叉树;遍历;存储方式 |
| 34 | 本周小结!(二叉树系列四) | |
| 35 | 本周小结!(二叉树) |
代码随想录-回溯算法
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 17.电话号码的字母组合 | 回溯算法;数字映射;字符集 |
| 2 | 46.全排列 | 回溯算法;used数组 |
| 3 | 39. 组合总和 | 回溯;剪枝 |
| 4 | 37. 解数独 | 回溯法;二维递归 |
| 5 | 40.组合总和II | 回溯;树层去重;组合总和 |
| 6 | 51. N皇后 | 回溯;N皇后;剪枝 |
| 7 | 47.全排列 II | 回溯;去重;全排列 |
| 8 | 78.子集 | 回溯算法;子集 |
| 9 | 77.组合优化 | 回溯搜索法;剪枝优化 |
| 10 | 131.分割回文串 | 回溯算法;回文子串;动态规划 |
| 11 | 回溯分割字符串:IP地址生成问题(力扣93 复原IP地址) | |
| 12 | 回溯算法学习路线 | 代码随想录 |
| 13 | 90.子集II | 回溯算法;树层去重 |
| 14 | 216.组合总和III | 回溯算法;剪枝 |
| 15 | 第77题. 组合 | 回溯法;组合问题;剪枝 |
| 16 | 回溯算法去重问题的另一种写法 | 回溯算法;set 去重;本层去重 |
| 17 | 491.递增子序列 | 回溯;树层去重;递增子序列 |
| 18 | 回溯算法理论基础 | 回溯算法;递归;剪枝 |
| 19 | 回溯总结篇 | 回溯算法;树形结构;剪枝 |
| 20 | 本周小结!(回溯算法系列三) | |
| 21 | 本周小结!(回溯算法系列一) | |
| 22 | 本周小结!(回溯算法系列二) |
代码随想录-贪心算法
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 53. 最大子序和 | 贪心算法;动态规划;连续子数组 |
| 2 | 55. 跳跃游戏 | 贪心算法;覆盖范围 |
| 3 | 56. 合并区间 | 合并区间;排序;重叠区间 |
| 4 | 45.跳跃游戏 II | 贪心算法;覆盖范围 |
| 5 | 122.买卖股票的最佳时机 II | 贪心算法;动态规划;状态转移 |
| 6 | 135. 分发糖果 | 贪心;两次遍历 |
| 7 | 406.根据身高重建队列 | 贪心;排序;插入 |
| 8 | 435. 无重叠区间 | 贪心算法;区间排序;重叠区间 |
| 9 | 452. 用最少数量的箭引爆气球 | 贪心;排序;重叠区间 |
| 10 | 455.分发饼干 | 贪心算法;排序;分配 |
| 11 | 134. 加油站 | 贪心算法;剩余油量累加和 |
| 12 | 376. 摆动序列 | 贪心算法;动态规划;峰值统计 |
| 13 | 738.单调递增的数字 | 贪心算法;从后向前遍历;字符串调整 |
| 14 | 860.柠檬水找零 | 贪心算法;零钱维护 |
| 15 | 763.划分字母区间 | 贪心算法;最远边界 |
| 16 | 1005.K次取反后最大化的数组和 | 贪心算法;绝对值排序;取反操作 |
| 17 | 关于贪心算法,你该了解这些! | 贪心算法;局部最优;全局最优 |
| 18 | 968.监控二叉树 | 贪心算法;后序遍历;状态转移 |
| 19 | 贪心算法:根据身高重建队列(续集) | 贪心算法;vector;链表 |
| 20 | 本周小结!(贪心算法系列二) | |
| 21 | 贪心算法学习路线 | 代码随想录 |
| 22 | 本周小结!(贪心算法系列四) | |
| 23 | 本周小结!(贪心算法系列三) | |
| 24 | 本周小结!(贪心算法系列一) | |
| 25 | 贪心算法总结篇 | 贪心算法;区间问题;股票问题 |
代码随想录-动态规划
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 63. 不同路径 II | 动态规划;dp 数组;障碍物处理 |
| 2 | 70. 爬楼梯(进阶版) | 完全背包;排列问题 |
| 3 | 70. 爬楼梯 | 动态规划;状态转移 |
| 4 | 62.不同路径 | 动态规划;状态转移;滚动数组 |
| 5 | 115.不同的子序列 | 动态规划;子序列;dp数组 |
| 6 | 53. 最大子序和 | 动态规划;状态转移公式;dp数组 |
| 7 | 96.不同的二叉搜索树 | 动态规划;二叉搜索树;递推公式 |
| 8 | 188.买卖股票的最佳时机IV | 动态规划;状态转移;dp数组 |
| 9 | 123.买卖股票的最佳时机III | 动态规划;状态转移 |
| 10 | 198.打家劫舍 | 动态规划;状态转移 |
| 11 | 213.打家劫舍II | 动态规划;状态转移 |
| 12 | 72. 编辑距离 | 动态规划;状态转移;编辑距离 |
| 13 | 121. 买卖股票的最佳时机 | 动态规划;贪心;状态转移 |
| 14 | 139.单词拆分 | 动态规划;完全背包;状态转移 |
| 15 | 300.最长递增子序列 | 动态规划;状态转移方程;子序列 |
| 16 | 279.完全平方数 | 动态规划;完全背包 |
| 17 | 309.最佳买卖股票时机含冷冻期 | 动态规划;状态转移;冷冻期 |
| 18 | 337.打家劫舍 III | 树形动态规划;后序遍历;状态转移 |
| 19 | 322. 零钱兑换 | 动态规划;完全背包;状态转移 |
| 20 | 122.买卖股票的最佳时机II | 动态规划;状态转移;滚动数组 |
| 21 | 392.判断子序列 | 动态规划;子序列;状态转移 |
| 22 | 377. 组合总和 Ⅳ | 动态规划;完全背包;排列 |
| 23 | 474.一和零 | 动态规划;背包问题;二维背包 |
| 24 | 516.最长回文子序列 | 动态规划;回文子序列;状态转移 |
| 25 | 583. 两个字符串的删除操作 | 动态规划;最长公共子序列 |
| 26 | 509. 斐波那契数 | 动态规划;状态转移方程;递归 |
| 27 | 343. 整数拆分 | 动态规划;递推公式;dp数组 |
| 28 | 674. 最长连续递增序列 | 动态规划;贪心算法;连续递增子序列 |
| 29 | 714.买卖股票的最佳时机含手续费 | 动态规划;状态转移;手续费 |
| 30 | 494.目标和 | 背包问题;动态规划;组合总和 |
| 31 | 718. 最长重复子数组 | 动态规划;滚动数组;状态转移 |
| 32 | 518.零钱兑换II | 完全背包;动态规划;组合数 |
| 33 | 647. 回文子串 | 动态规划;双指针法 |
| 34 | 746. 使用最小花费爬楼梯 | 动态规划;递推公式 |
| 35 | 416. 分割等和子集 | 01 背包;动态规划 |
| 36 | 1035.不相交的线 | 最长公共子序列;动态规划 |
| 37 | 动态规划学习路线 | 代码随想录 |
| 38 | 完全背包理论基础-二维DP数组 | 完全背包;二维DP数组;状态转移 |
| 39 | 动态规划之编辑距离总结篇 | 动态规划;状态转移;编辑距离 |
| 40 | 听说背包问题很难? 这篇总结篇来拯救你了 | 动态规划;背包问题;递推公式 |
| 41 | Leetcode股票问题总结篇! | 动态规划;状态转移;贪心解法 |
| 42 | 动态规划理论基础 | 动态规划;状态推导;dp数组 |
| 43 | 1049.最后一块石头的重量II | 01背包;动态规划;dp数组 |
| 44 | 动态规划:关于多重背包,你该了解这些! | 多重背包;动态规划;01背包 |
| 45 | 动态规划最强总结篇! | 动态规划;动规五部曲;背包问题 |
| 46 | 1143.最长公共子序列 | 动态规划;状态转移;dp数组 |
| 47 | 本周小结!(动态规划系列二) | |
| 48 | 本周小结!(动态规划系列五) | |
| 49 | 本周小结!(动态规划系列六) | |
| 50 | 动态规划:01背包理论基础 | 动态规划;01背包;二维dp数组 |
| 51 | 本周小结!(动态规划系列四) | |
| 52 | 本周小结!(动态规划系列一) | |
| 53 | 本周小结!(动态规划系列七) | |
| 54 | 本周小结!(动态规划系列三) | |
| 55 | 动态规划:01背包理论基础(滚动数组) | 动态规划;滚动数组;01背包 |
代码随想录-单调栈
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 496.下一个更大元素 I | 单调栈;哈希表 |
| 2 | 单调栈学习路线 | 代码随想录 |
| 3 | 42. 接雨水 | 单调栈;双指针;凹槽计算 |
| 4 | 739. 每日温度 | 单调栈;递增栈;右边第一个更大元素 |
| 5 | 84.柱状图中最大的矩形 | 单调栈;柱状图最大矩形面积;左右两侧第一个小于该柱子的柱子 |
| 6 | 503.下一个更大元素II | 单调栈;循环数组;成环搜索 |
代码随想录-图论
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 图论学习路线 | 代码随想录 |
| 2 | 图论总结篇 | 深搜与广搜;并查集;最小生成树 |
| 3 | 广度优先搜索理论基础 | 广度优先搜索;最短路径;图论 |
| 4 | 深度优先搜索理论基础 | 深度优先搜索;回溯;递归 |
| 5 | dijkstra(堆优化版)精讲 | 堆优化;邻接表;dijkstra |
| 6 | Bellmanford 队列优化算法(又名SPFA) | Bellmanford 队列优化算法;SPFA;最短路径 |
| 7 | dijkstra(朴素版)精讲 | dijkstra;最短路径;朴素版 |
| 8 | prim算法精讲 | prim算法;最小生成树;贪心策略 |
| 9 | 图论理论基础 | 图论;有向图;无向图 |
| 10 | bellman_ford之单源有限最短路 | Bellman-Ford;松弛;负权回路 |
| 11 | Floyd 算法精讲 | Floyd 算法;多源最短路;动态规划 |
| 12 | Bellmanford 算法精讲 | Bellmanford;松弛;单源最短路 |
| 13 | 99. 岛屿数量 | 广度优先搜索;深度优先搜索;并查集 |
| 14 | 100. 岛屿的最大面积 | 深度优先搜索;广度优先搜索 |
| 15 | 98. 所有可达路径 | 深度优先搜索;有向无环图;邻接矩阵 |
| 16 | kruskal算法精讲 | Kruskal算法;并查集;最小生成树 |
| 17 | 101. 孤岛的总面积 | 深度优先搜索;广度优先搜索;矩阵遍历 |
| 18 | 99. 岛屿数量 | 深度优先搜索;矩阵遍历;连通分量 |
| 19 | 103. 水流问题 | 深度优先搜索;广度优先搜索;逆流遍历 |
| 20 | 102. 沉没孤岛 | 深搜优先搜索DFS;矩阵标记 |
| 21 | bellmanford之判断负权回路 | bellmanford;负权回路;SPFA |
| 22 | 105.有向图的完全联通 | 有向图;深度优先搜索;广度优先搜索 |
| 23 | 107. 寻找存在的路径 | 并查集;无向图 |
| 24 | 106. 岛屿的周长 | 遍历;方向检查 |
| 25 | 108. 冗余连接 | 并查集;冗余连接 |
| 26 | 110. 字符串接龙 | 广度优先搜索;无权图 |
| 27 | 109. 冗余连接II | 有向图;并查集;入度 |
| 28 | 104.建造最大岛屿 | 深度优先搜索;岛屿面积;矩阵 |
| 29 | 拓扑排序精讲 | 拓扑排序;有向无环图;广度优先搜索 |
| 30 | A 算法精讲 (A star算法) | A 算法;启发式函数;优先级队列 |
| 31 | 并查集理论基础 | 并查集;路径压缩;连通性问题 |
| 32 | 图论为什么统一使用ACM模式 | ACM模式;邻接表;邻接矩阵 |
| 33 | 最短路算法总结篇 | Dijkstra;Bellman_ford;Floyd |
代码随想录-学习体系补充文章
| 序号 | 文章 | 关键词/模型 |
|---|---|---|
| 1 | 31.下一个排列 | 下一个排列;字典序;原地修改 |
| 2 | 35.搜索插入位置 | 二分法;排序数组;循环不变量 |
| 3 | 34. 在排序数组中查找元素的第一个和最后一个位置 | 二分查找;左右边界 |
| 4 | 52. N皇后II | 回溯;剪枝 |
| 5 | 24. 两两交换链表中的节点 | 链表;虚拟头结点;节点交换 |
| 6 | 116. 填充每个节点的下一个右侧节点指针 | 递归;层序遍历 |
| 7 | 54.螺旋矩阵 | 螺旋矩阵;顺时针遍历;循环不变量 |
| 8 | 100. 相同的树 | 二叉树;递归;迭代法 |
| 9 | 129. 求根节点到叶节点数字之和 | 递归;回溯;二叉树 |
| 10 | 127. 单词接龙 | 广度优先搜索;无向图;最短路径 |
| 11 | 132. 分割回文串 II | 动态规划;回文子串 |
| 12 | 160. 相交链表 | |
| 13 | 189. 旋转数组 | 反转;原地算法 |
| 14 | 141. 环形链表 | 快慢指针法;链表环检测 |
| 15 | 130. 被围绕的区域 | 深度优先搜索;广度优先搜索;矩阵边界 |
| 16 | 200. 岛屿数量 | 广度优先搜索;DFS;BFS |
| 17 | 5.最长回文子串 | 动态规划;双指针;Manacher 算法 |
| 18 | 205. 同构字符串 | 映射;哈希表 |
| 19 | 200. 岛屿数量 | 深度优先搜索;二维网格 |
| 20 | 拓扑排序(BFS)实现:有向无环图排序(力扣207 课程表) | |
| 21 | 拓扑排序模板题:课程表 II(力扣210) | |
| 22 | 143.重排链表 | 双指针法;快慢指针法;反转链表 |
| 23 | 649. Dota2 参议院 | 贪心;模拟;标志变量 |
| 24 | 283. 移动零:动态规划:一样的套路,再求一次完全平方数 | 双指针;数组 |
| 25 | 234.回文链表 | 快慢指针;反转链表 |
| 26 | 673.最长递增子序列的个数 | 动态规划;状态转移;计数数组 |
| 27 | 332.重新安排行程 | 回溯法;深度优先搜索;路径查找 |
| 28 | 463. 岛屿的周长 | 二维网格;遍历;边界检查 |
| 29 | 684.冗余连接 | 并查集;冗余连接 |
| 30 | 714. 买卖股票的最佳时机含手续费 | 动态规划;贪心算法 |
| 31 | 657. 机器人能否返回原点 | 坐标计数;移动顺序 |
| 32 | 417. 太平洋大西洋水流问题 | 深度优先搜索;广度优先搜索;逆流而上 |
| 33 | 724.寻找数组的中心下标 | 数组;总和;左右和 |
| 34 | 685.冗余连接II | 有向图;并查集;入度 |
| 35 | 695. 岛屿的最大面积 | DFS;BFS |
| 36 | 797.所有可能的路径 | 深度优先搜索;回溯;有向无环图 |
| 37 | 743.网络延迟时间 | Dijkstra 算法;堆优化;最短路径 |
| 38 | 827.最大人工岛 | 深度优先搜索;岛屿标记 |
| 39 | 787. K 站中转内最便宜的航班 | SPFA;状态转移;邻接表 |
| 40 | 双指针奇偶交换:数组排序(力扣922 按奇偶排序数组II) | |
| 41 | 844.比较含退格的字符串 | 栈模拟;双指针 |
| 42 | 1002. 查找常用字符 | 哈希表;最小频率 |
| 43 | 1020. 飞地的数量 | 深度优先搜索;广度优先搜索 |
| 44 | 841.钥匙和房间 | 有向图;深度优先搜索;广度优先搜索 |
| 45 | 1207.独一无二的出现次数 | 哈希法;数组;频率统计 |
| 46 | 941.有效的山脉数组 | 双指针;递增递减序列 |
| 47 | 1254. 统计封闭岛屿的数目 | 深度优先搜索;二维矩阵 |
| 48 | 1356. 根据数字二进制下 1 的数目排序 | 位运算;自定义排序 |
| 49 | 1221. 分割平衡字符串 | 贪心;平衡字符串;遍历 |
| 50 | Floyd算法模板题:找到阈值距离内邻居最少的城市(力扣1334) | |
| 51 | 1382.将二叉搜索树变平衡 | 二叉搜索树;中序遍历;有序数组 |
| 52 | 1971. 寻找图中是否存在路径 | 并查集;路径压缩 |
| 53 | 1365.有多少小于当前数字的数字 | 排序;哈希 |
| 54 | 代码随想录算法补充文章 | |
| 55 | 完全背包-一维数组 | 完全背包;一维数组;动态规划 |
| 56 | 二叉树:以为使用了递归,其实还隐藏着回溯 | 递归;回溯 |
| 57 | 算法模板 | 二分查找法;KMP;二叉树遍历 |
| 58 | 925.长按键入 | |
| 59 | 1791.找出星型图的中心节点 | 度;中心节点;星型图 |
| 60 | 右旋字符串 | 整体反转;局部反转 |
| 61 | 程序提交之后为什么会超时?O(n)的算法会超时,n究竟是多大? | 时间复杂度;性能测试;CPU 配置 |
| 62 | 替换数字 | 双指针;字符串替换 |