{"data":[{"oj":"luogu","problem_id":"P1481","title":"魔族密码","description":"枚举前缀 / 字典树 / DP 三种方式求以每个单词结尾的最长词链长度。","difficulty":"普及-","date":"2026-07-16 19:57","toc":true,"tags":["字符串","字典树","dp","python","cpp","模板题"],"favorite":true,"favorite_reason":"trie 的入门题目,trie树建模","categories":[],"pre":[{"oj":"luogu","problem_id":"P2580","reason":"集合查重作为 Trie 的简单铺垫"}],"common":[],"recommend":[],"source":"https://www.luogu.com.cn/problem/P1481","md_path":"luogu/1481/index.md","url":"/problems/luogu/P1481","dateA":1784231820000},{"oj":"luogu","problem_id":"P3375","title":"【模板】KMP","description":"用前缀函数在线性时间输出所有匹配位置，并给出模式串每个前缀的最长 border。","difficulty":"普及/提高-","date":"2026-07-16 19:57","toc":true,"tags":["KMP","前缀函数","字符串","python"],"favorite":true,"favorite_reason":"KMP 模板题，前缀函数（pi 数组）和匹配回退的定式","categories":[],"pre":[],"common":[],"recommend":[],"source":"https://www.luogu.com.cn/problem/P3375","md_path":"luogu/3375/index.md","url":"/problems/luogu/P3375","dateA":1784231820000},{"oj":"luogu","problem_id":"P4375","title":"[USACO18OPEN] Out of Sorts G","description":"稳定排序后统计每条位置边界上向右跨越的元素数，其最大值就是双向冒泡所需轮数。","difficulty":"提高+/省选-","date":"2026-07-16 17:48","toc":true,"tags":["排序","稳定排序","冒泡排序","差分","前缀和","思维","USACO","python"],"favorite":true,"favorite_reason":"这题把双向冒泡的动态过程转化为边界跨越的静态统计，再用稳定排序和差分求出最拥挤边界，是一次很有启发性的视角转换。","categories":[],"pre":[],"common":[],"recommend":[],"source":"https://www.luogu.com.cn/problem/P4375","md_path":"luogu/4375/index.md","url":"/problems/luogu/P4375","dateA":1784224080000},{"oj":"luogu","problem_id":"P5937","title":"[CEOI 1999] Parity Game","description":"把区间奇偶转成前缀异或约束，用带权并查集或 2N 并查集在线找出第一条矛盾回答。","difficulty":"普及+/提高","date":"2026-07-16 17:48","toc":true,"tags":["并查集","带权并查集","2N并查集","前缀和","离散化","python","cpp"],"favorite":true,"favorite_reason":"这题把区间奇偶问题完整地转成前缀异或约束，既能推导出带权并查集的权值公式，也能用 2N 并查集看懂敌我关系，是学习两种关系并查集写法的好例子。","categories":[],"pre":[],"common":[{"oj":"luogu","problem_id":"P1196","reason":"把父子关系权值从 XOR 换成普通加法，练习距离型位势并查集。"},{"oj":"luogu","problem_id":"P2024","reason":"把二元奇偶关系推广到三类循环关系，练习模 3 的种类并查集。"}],"recommend":[{"oj":"codeforces","problem_id":"1615D","title":"X(or)-mas Tree","url":"https://codeforces.com/problemset/problem/1615/D","reason":"继续练习树上的 XOR 路径约束与带权关系合并。","relation":"practice"},{"oj":"codeforces","problem_id":"468B","title":"Two Sets","url":"https://codeforces.com/problemset/problem/468/B","reason":"练习把互补选择关系拆成两层节点的 2N 并查集。","relation":"practice"}],"source":"https://www.luogu.com.cn/problem/P5937","md_path":"luogu/5937/index.md","url":"/problems/luogu/P5937","dateA":1784224080000},{"oj":"luogu","problem_id":"P3879","title":"[TJOI2010] 阅读理解","description":"用 defaultdict 建立单词到文章编号列表的倒排索引，并在每篇文章内先去重。","difficulty":"普及-","date":"2026-06-21 01:30","toc":true,"tags":["字符串","哈希","倒排索引","trie","字典树","defaultdict","python","cpp"],"favorite":true,"favorite_reason":"倒排索引入门，C++ Trie 自动带有word的hash","categories":[],"pre":[{"oj":"luogu","problem_id":"P1481","reason":"Trie / 字符串前缀匹配的入门题"}],"common":[],"recommend":[],"source":"https://www.luogu.com.cn/problem/P3879","md_path":"luogu/3879/index.md","url":"/problems/luogu/P3879","dateA":1782005400000}],"pagination":{"total":5,"page":1,"limit":20,"totalPages":1}}