新手村

任何一个伟大的目标,都有一个微不足道的开始。

洛谷的第一个任务

勇敢的迈出第一步,了解下语言和洛谷。跟着书本和老师走,不会难的。

顺序与分支

计算机的智能性开始得以体现,因为计算机能够根据不同的条件选择了。

循环!循环!循环!

计算机最不怕的就是重复。你让它做10000次同样的事它也不怕啦,但是让他做1亿亿次的话……

数组

跟数组有关的题目基本上都要用到循环,所以请先完成1-3。

简单字符串

计算机不仅可以处理数字,还能处理文字!就是其实跟数字也没什么差。

过程函数与递归

将代码串进行打包,就是过程与函数。过程与函数调用自己则为递归。有一点小难但不要怕哦。

BOSS战-入门综合练习1

这里将前面的内容综合起来了,会有点难,不过你可以问老师同学,也能上网查资料。

BOSS战-入门综合练习2

勇士,竟然来到了BOSS的老巢!来一场恶斗,证明自己的实力,解锁下一个级别!

普及练习场

普及组选手可冲刺训练,提高组选手亦可在此巩固基础。

简单的模拟

开始普及组的训练!所谓模拟,就是直接根据题意编写,思维难度简单。

交叉模拟

这里也是模拟,但是会混有些别的部分。思维难度不大,但是编写起来会有些难度。

排序

将杂乱无章的数据变得有规律。有各种各样的排序算法,看情况使用。

排序Ex

这里的排序就更上一层了。不仅融合了别的算法与技巧,排序本身也有各种花招。

字符串处理

这里的字符串处理还会变得更加的有意思,难度也更大。需要好好地思考一下。

贪心

贪心就是只考虑眼前的利益。对于我们人生来说太贪是不好的,不过oi中,有时是对的。

深度优先搜索

搜索可以穷举各种情况。很多题目都可以用搜索完成。就算不能,搜索也是骗分神器。

广度优先搜索

广度优先搜索可以用来找有关“最短步数”的问题。恩,也可以用来“地毯式搜索”。

带有技巧的搜索

这里的搜索不仅包含了dfs和bfs,还包括剪枝、记录等技巧以加快速度。

分治算法

将大问题拆分为小问题,分而治之,各个击破,然后在合并回来。

简单数学问题

用计算机解决某些麻烦数学问题,再合适不过了。这真是绝妙的搭配啊!

递推与递归二分

递推,层层递进,由基础推向顶层。二分不仅可以用来查找数据,还可以确定最合适的值。

线性数据结构

数组,链表,队列,栈,都是线性结构。巧用这些结构可以做出不少方便的事情。

树形数据结构

由一个根节点分叉,越分越多,就成了树。树可以表示数据之间的从属关系

动态规划的背包问题

这是最基础的动态规划。不过如果是第一次接触会有些难以理解。加油闯过这个坎。

线性动态规划

这也是基础的动态规划。是在线性结构上面的动态规划,一定要掌握。

多维动态规划

这里的动态规划就不止一维了。不仅要小心时间复杂度,也要注意空间复杂度。

更要技巧的动规与记忆化

这边的题目有各种搞法。当然有的题目也可以使用记忆化搜索来降低思维难度。

高精度算法

就算是long long(或int64)还不够怎么办?用高精度算法。自己动手丰衣足食。

贪心EX

虽然是贪心题,可能不是你当时你虐着玩的贪心惹qwq

简单数学

数学和oi是密切相关的,数学不仅是oi的基础,而且是算法的核心。

BOSS战-普及综合练习1

好不容易闯到这一关,你那还等什么呢?抄起家伙赶快上啊!

BOSS战-普及综合练习2

来搞定第二个BOSS。虽然战斗艰难,但你一定没有问题。

BOSS战-普及综合练习3

普及练习场的大BOSS:“一定让你有去无回”。怎么办呢?只能打倒他开启下一个级别!

普及常见模板

这里集中了比较基础的算法的模板。提高和省选也有模板题哦!

提高历练地

已经去除了普及组难度的,请组织放心。成长大牛之必写题!!!

搜索Ex

开始提高组的试炼。这里已经去除了所有普及组难度的题目。哼哼,怕了吧。。

动态规划TG.lv(1)

这是提高组难度中比较基础的动态规划,也许一两个转移方程就可以写出。

动态规划TG.lv(2)

这里的动态规划稍稍有所加大难度,思考转移方程的时间可能会与编写程序的时间持平。

动态规划TG.lv(3)

比较需要技巧的动态规划。有的不仅仅需要状态转移方程,可能还会与别的算法综合。

数论

数论就是研究整数的理论。包括公约公倍数、质数、欧拉定理和同余方程等。

博弈论

博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。

其他数学问题

听说学oi的同志们数学都挺好。那么。就请完成下面的题目证明这一点吧!

图的遍历

图是一种非常重要的数据结构,描述对象复杂的练习。这里开始接触图的基本概念。

最短路问题

最短路是图论中最重要的部分,多种算法可以应用。很多题目都可以抽象成这种模型。

最小生成树

最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。

较复杂图论I

别的些图论问题,包括树、拓扑排序等。要过这一关,需要学习不少新的算法。

较复杂图论II

更高级的图论算法。包括差分约束、强连通、二分图等。会更难一些。

并查集

用于处理一些不相交集合的合并及查询问题。常常在使用中以森林来表示。

堆总是一棵完全树;堆中某个节点的值总是不大于或不小于其父节点的值。

线段树树状数组基础

这都是比较高级的线性数据结构。在处理一些询问与修改线性问题时,是很好用的。

神奇的解法

有些问题刚开始觉得无从下手。好好想一想,尽量别看题解,否则你会大呼“简单”。

倍增

一种特殊的枚举算法,但可大大加快效率。近年noip有考到。难度较大。

强连通分量

强连通分量

BOSS战-提高综合练习1

年轻人,又是个送上门的,让我来看看你真实的本领。啊哈哈哈哈哈!

BOSS战-提高综合练习2

再来!这里有的题目并非单纯的考察某个算法,而是考察一种综合性的思维。

BOSS战-提高综合练习3

既然已经打倒了前面2个boss,那么第3个也是没有问题的。少年,来吧!

提高模板-nlogn数据结构

虽然这些算法不是noip必须的,但是不算困难,很多题目可以使用这些方法。

省选斗兽场/NOI神殿

为省选及以上选手制作的训练场。其实,省选水平的oier不需要一些外加的刷题列表,本栏仅供参考,也欢迎各位指出不足。

省选基础-读入/输出优化

读入/输出优化是省选刷题时必要的一个东西,这里给出了几题,需要自己手写相应的读入输出处理。作为第一关,这一关相对简单。

省选基础-位运算

位运算往往在必要的时候,能带你优化一下常数,也许是空间;也许是时间;有的时候这样可以多过很多分

省选基础-打表

打表虽然很赖皮,而且基本都是非正解,但是这种办法能让我们在省选中拿到一些会超时或者会超空间的一些数据点

动态规划1

动态规划

动态规划2

动态规划

网络流——最大流

最大流

网络流——费用流

费用流

单调队列

单调队列

概率期望

概率期望

二分图

二分图

点分治

点分治

后缀数组

后缀数组

主席树

主席树

数位DP

数位DP

AC自动机

AC自动机

平衡树

平衡树

树链剖分

树链剖分

动态树

动态树

树套树

树套树

可持久化Trie树

可持久化Trie树

莫队算法

莫队算法

分块

分块

莫比乌斯反演

莫比乌斯反演

其他

其他

USACO

美国经典的算法练习题库,值得一刷

USACO Section 1.1

USACO Section 1.2

完全枚举

USACO Section 1.3

贪心

USACO Section 1.4

有技巧的枚举

USACO Section 1.5

二进制数

USACO Section 2.1

图论和洪水填充

USACO Section 2.2

数据结构与动态规划

USACO Section 2.3

USACO Section 2.4

最短路径

USACO Section 3.1

最小生成树

USACO Section 3.2

背包问题

USACO Section 3.3

欧拉回路

USACO Section 3.4

计算几何

USACO Section 4.1

最优化

USACO Section 4.2

网络流

USACO Section 4.3

高精度

USACO Section 4.4

USACO Section 5.1

二维凸包

USACO Section 5.2

USACO Section 5.3

启发式搜索

USACO Section 5.4

USACO Section 5.5

[
  {
    "name": "新手村",
    "description": "任何一个伟大的目标,都有一个微不足道的开始。",
    "subtasks": [
      {
        "name": "洛谷的第一个任务",
        "description": "勇敢的迈出第一步,了解下语言和洛谷。跟着书本和老师走,不会难的。",
        "problems": ["P1000", "P1001", "P1421", "P1425"]
      },
      {
        "name": "顺序与分支",
        "description": "计算机的智能性开始得以体现,因为计算机能够根据不同的条件选择了。",
        "problems": ["P1422", "P1085", "P1089", "P1909"]
      },
      {
        "name": "循环!循环!循环!",
        "description": "计算机最不怕的就是重复。你让它做10000次同样的事它也不怕啦,但是让他做1亿亿次的话……",
        "problems": ["P1008", "P1035", "P1423", "P1424", "P1980"]
      },
      {
        "name": "数组",
        "description": "跟数组有关的题目基本上都要用到循环,所以请先完成1-3。",
        "problems": ["P1046", "P1047", "P1427", "P1428", "P2141", "P1567"]
      },
      {
        "name": "简单字符串",
        "description": "计算机不仅可以处理数字,还能处理文字!就是其实跟数字也没什么差。",
        "problems": ["P1055", "P1200", "P1308", "P1553", "P1598", "P1914"]
      },
      {
        "name": "过程函数与递归",
        "description": "将代码串进行打包,就是过程与函数。过程与函数调用自己则为递归。有一点小难但不要怕哦。",
        "problems": ["P1028", "P1036", "P1149", "P1217"]
      },
      {
        "name": "BOSS战-入门综合练习1",
        "description": "这里将前面的内容综合起来了,会有点难,不过你可以问老师同学,也能上网查资料。",
        "problems": ["P1478", "P1618", "P1579", "P2089"]
      },
      {
        "name": "BOSS战-入门综合练习2",
        "description": "勇士,竟然来到了BOSS的老巢!来一场恶斗,证明自己的实力,解锁下一个级别!",
        "problems": ["P1426", "P1464", "P1014", "P1022", "P1307"]
      }
    ]
  },
  {
    "name": "普及练习场",
    "description": "普及组选手可冲刺训练,提高组选手亦可在此巩固基础。",
    "subtasks": [
      {
        "name": "简单的模拟",
        "description": "开始普及组的训练!所谓模拟,就是直接根据题意编写,思维难度简单。",
        "problems": ["P1003", "P1067", "P1540", "P1056", "P1328", "P1563"]
      },
      {
        "name": "交叉模拟",
        "description": "这里也是模拟,但是会混有些别的部分。思维难度不大,但是编写起来会有些难度。",
        "problems": ["P1023", "P1031", "P1042", "P1086", "P1098", "P3952"]
      },
      {
        "name": "排序",
        "description": "将杂乱无章的数据变得有规律。有各种各样的排序算法,看情况使用。",
        "problems": ["P1177", "P1059", "P1068", "P1781"]
      },
      {
        "name": "排序Ex",
        "description": "这里的排序就更上一层了。不仅融合了别的算法与技巧,排序本身也有各种花招。",
        "problems": ["P1583", "P1051", "P1093", "P1309"]
      },
      {
        "name": "字符串处理",
        "description": "这里的字符串处理还会变得更加的有意思,难度也更大。需要好好地思考一下。",
        "problems": ["P1603", "P1071", "P1012", "P1538"]
      },
      {
        "name": "贪心",
        "description": "贪心就是只考虑眼前的利益。对于我们人生来说太贪是不好的,不过oi中,有时是对的。",
        "problems": ["P1090", "P1181", "P1208", "P1223", "P1094", "P1803", "P1031", "P1080"]
      },
      {
        "name": "深度优先搜索",
        "description": "搜索可以穷举各种情况。很多题目都可以用搜索完成。就算不能,搜索也是骗分神器。",
        "problems": ["P1219", "P1019", "P1101", "P1605", "P1040", "P1092"]
      },
      {
        "name": "广度优先搜索",
        "description": "广度优先搜索可以用来找有关“最短步数”的问题。恩,也可以用来“地毯式搜索”。",
        "problems": ["P1162", "P1032", "P1141", "P1126", "P1443"]
      },
      {
        "name": "带有技巧的搜索",
        "description": "这里的搜索不仅包含了dfs和bfs,还包括剪枝、记录等技巧以加快速度。",
        "problems": ["P1118", "P1434", "P1433", "P1074"]
      },
      {
        "name": "分治算法",
        "description": "将大问题拆分为小问题,分而治之,各个击破,然后在合并回来。",
        "problems": ["P1226", "P1010", "P1908", "P1498"]
      },
      {
        "name": "简单数学问题",
        "description": "用计算机解决某些麻烦数学问题,再合适不过了。这真是绝妙的搭配啊!",
        "problems": ["P1088", "P1045", "P1403", "P1017", "P1147", "P1029"]
      },
      {
        "name": "递推与递归二分",
        "description": "递推,层层递进,由基础推向顶层。二分不仅可以用来查找数据,还可以确定最合适的值。",
        "problems": ["P1192", "P1025", "P1057", "P1135", "P1216", "P1182", "P1316"]
      },
      {
        "name": "线性数据结构",
        "description": "数组,链表,队列,栈,都是线性结构。巧用这些结构可以做出不少方便的事情。",
        "problems": ["P1996", "P1115", "P1739", "P1160", "P1449"]
      },
      {
        "name": "树形数据结构",
        "description": "由一个根节点分叉,越分越多,就成了树。树可以表示数据之间的从属关系",
        "problems": ["P1087", "P1030", "P1305", "P5018"]
      },
      {
        "name": "动态规划的背包问题",
        "description": "这是最基础的动态规划。不过如果是第一次接触会有些难以理解。加油闯过这个坎。",
        "problems": ["P1060", "P1164", "P1064", "P1048", "P1049", "P1616"]
      },
      {
        "name": "线性动态规划",
        "description": "这也是基础的动态规划。是在线性结构上面的动态规划,一定要掌握。",
        "problems": ["P1020", "P1091", "P1280", "P1880", "P1140", "P1282"]
      },
      {
        "name": "多维动态规划",
        "description": "这里的动态规划就不止一维了。不仅要小心时间复杂度,也要注意空间复杂度。",
        "problems": ["P1508", "P1006", "P1387", "P1417", "P1855", "P1736"]
      },
      {
        "name": "更要技巧的动规与记忆化",
        "description": "这边的题目有各种搞法。当然有的题目也可以使用记忆化搜索来降低思维难度。",
        "problems": ["P1064", "P1541", "P1026", "P1063", "P1156", "P1052"]
      },
      {
        "name": "高精度算法",
        "description": "就算是long long(或int64)还不够怎么办?用高精度算法。自己动手丰衣足食。",
        "problems": ["P1601", "P2142", "P1303", "P1255", "P1604"]
      },
      {
        "name": "贪心EX",
        "description": "虽然是贪心题,可能不是你当时你虐着玩的贪心惹qwq",
        "problems": ["P1080", "P1031", "P1233", "P2123"]
      },
      {
        "name": "简单数学",
        "description": "数学和oi是密切相关的,数学不仅是oi的基础,而且是算法的核心。",
        "problems": ["P1865", "P1372", "P1338", "P2158", "P1582"]
      },
      {
        "name": "BOSS战-普及综合练习1",
        "description": "好不容易闯到这一关,你那还等什么呢?抄起家伙赶快上啊!",
        "problems": ["P1478", "P1203", "P1363", "P1736"]
      },
      {
        "name": "BOSS战-普及综合练习2",
        "description": "来搞定第二个BOSS。虽然战斗艰难,但你一定没有问题。",
        "problems": ["P1201", "P1095", "P1058", "P2258", "P1108"]
      },
      {
        "name": "BOSS战-普及综合练习3",
        "description": "普及练习场的大BOSS:“一定让你有去无回”。怎么办呢?只能打倒他开启下一个级别!",
        "problems": ["P1328", "P1062", "P1969", "P1037"]
      },
      {
        "name": "普及常见模板",
        "description": "这里集中了比较基础的算法的模板。提高和省选也有模板题哦!",
        "problems": ["P1177", "P3366", "P3367", "P3371", "P3383"]
      }
    ]
  },
  {
    "name": "提高历练地",
    "description": "已经去除了普及组难度的,请组织放心。成长大牛之必写题!!!",
    "subtasks": [
      {
        "name": "搜索Ex",
        "description": "开始提高组的试炼。这里已经去除了所有普及组难度的题目。哼哼,怕了吧。。",
        "problems": ["P1120", "P1378", "P1514", "P1312", "P1441", "P1242"]
      },
      {
        "name": "动态规划TG.lv(1)",
        "description": "这是提高组难度中比较基础的动态规划,也许一两个转移方程就可以写出。",
        "problems": ["P1005", "P1373", "P2279", "P1220", "P1156"]
      },
      {
        "name": "动态规划TG.lv(2)",
        "description": "这里的动态规划稍稍有所加大难度,思考转移方程的时间可能会与编写程序的时间持平。",
        "problems": ["P1273", "P1169", "P2577", "P1070", "P2051"]
      },
      {
        "name": "动态规划TG.lv(3)",
        "description": "比较需要技巧的动态规划。有的不仅仅需要状态转移方程,可能还会与别的算法综合。",
        "problems": ["P1415", "P2157", "P2216", "P2331", "P2467", "P3084"]
      },
      {
        "name": "数论",
        "description": "数论就是研究整数的理论。包括公约公倍数、质数、欧拉定理和同余方程等。",
        "problems": ["P2152", "P1414", "P1134", "P1313", "P1306"]
      },
      {
        "name": "博弈论",
        "description": "博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。",
        "problems": ["P1199", "P1288", "P1290", "P2148", "P1247", "P2575"]
      },
      {
        "name": "其他数学问题",
        "description": "听说学oi的同志们数学都挺好。那么。就请完成下面的题目证明这一点吧!",
        "problems": ["P1357", "P1641", "P2059", "P2154", "P2261", "P2327", "P1066"]
      },
      {
        "name": "图的遍历",
        "description": "图是一种非常重要的数据结构,描述对象复杂的练习。这里开始接触图的基本概念。",
        "problems": ["P2661", "P1330", "P1341", "P2921"]
      },
      {
        "name": "最短路问题",
        "description": "最短路是图论中最重要的部分,多种算法可以应用。很多题目都可以抽象成这种模型。",
        "problems": ["P1339", "P1462", "P1346", "P1119", "P1144", "P1522"]
      },
      {
        "name": "最小生成树",
        "description": "最小生成树可以用kruskal(克鲁斯卡尔)算法或prim(普里姆)算法求出。",
        "problems": ["P1546", "P2330", "P1991", "P1265"]
      },
      {
        "name": "较复杂图论I",
        "description": "别的些图论问题,包括树、拓扑排序等。要过这一关,需要学习不少新的算法。",
        "problems": ["P1113", "P1268", "P1525", "P1983"]
      },
      {
        "name": "较复杂图论II",
        "description": "更高级的图论算法。包括差分约束、强连通、二分图等。会更难一些。",
        "problems": ["P1993", "P1726", "P2055", "P2149", "P1345"]
      },
      {
        "name": "并查集",
        "description": "用于处理一些不相交集合的合并及查询问题。常常在使用中以森林来表示。",
        "problems": ["P1111", "P2024", "P1197", "P1196"]
      },
      {
        "name": "堆",
        "description": "堆总是一棵完全树;堆中某个节点的值总是不大于或不小于其父节点的值。",
        "problems": ["P1801", "P2278", "P1631", "P2085", "P1484"]
      },
      {
        "name": "线段树树状数组基础",
        "description": "这都是比较高级的线性数据结构。在处理一些询问与修改线性问题时,是很好用的。",
        "problems": ["P1972", "P1198", "P2023", "P2161"]
      },
      {
        "name": "神奇的解法",
        "description": "有些问题刚开始觉得无从下手。好好想一想,尽量别看题解,否则你会大呼“简单”。",
        "problems": ["P1007", "P1984", "P2022", "P2320"]
      },
      {
        "name": "倍增",
        "description": "一种特殊的枚举算法,但可大大加快效率。近年noip有考到。难度较大。",
        "problems": ["P1967", "P1081", "P1613"]
      },
      {
        "name": "强连通分量",
        "description": "强连通分量",
        "problems": ["P2341", "P3469", "P2746", "P3119", "P3225"]
      },
      {
        "name": "BOSS战-提高综合练习1",
        "description": "年轻人,又是个送上门的,让我来看看你真实的本领。啊哈哈哈哈哈!",
        "problems": ["P2264", "P1772", "P1083", "P1979", "P2939"]
      },
      {
        "name": "BOSS战-提高综合练习2",
        "description": "再来!这里有的题目并非单纯的考察某个算法,而是考察一种综合性的思维。",
        "problems": ["P1901", "P1314", "P2144", "P1073", "P2324"]
      },
      {
        "name": "BOSS战-提高综合练习3",
        "description": "既然已经打倒了前面2个boss,那么第3个也是没有问题的。少年,来吧!",
        "problems": ["P1965", "P1311", "P2296", "P1084"]
      },
      {
        "name": "提高模板-nlogn数据结构",
        "description": "虽然这些算法不是noip必须的,但是不算困难,很多题目可以使用这些方法。",
        "problems": ["P3374", "P3368", "P3372", "P3373", "P1439", "P3378"]
      }
    ]
  },
  {
    "name": "省选斗兽场/NOI神殿",
    "description": "为省选及以上选手制作的训练场。其实,省选水平的oier不需要一些外加的刷题列表,本栏仅供参考,也欢迎各位指出不足。",
    "subtasks": [
      {
        "name": "省选基础-读入/输出优化",
        "description": "读入/输出优化是省选刷题时必要的一个东西,这里给出了几题,需要自己手写相应的读入输出处理。作为第一关,这一关相对简单。",
        "problems": ["P1580", "P2393", "P2394"]
      },
      {
        "name": "省选基础-位运算",
        "description": "位运算往往在必要的时候,能带你优化一下常数,也许是空间;也许是时间;有的时候这样可以多过很多分",
        "problems": ["P2114", "P2396", "P2397"]
      },
      {
        "name": "省选基础-打表",
        "description": "打表虽然很赖皮,而且基本都是非正解,但是这种办法能让我们在省选中拿到一些会超时或者会超空间的一些数据点",
        "problems": ["P1149", "P1463", "P1896"]
      },
      {
        "name": "动态规划1",
        "description": "动态规划",
        "problems": ["P2051", "P1879", "P1850", "P2831", "P1131", "P1169"]
      },
      {
        "name": "动态规划2",
        "description": "动态规划",
        "problems": ["P1273", "P3648", "P2519", "P2515", "P3233", "P2501"]
      },
      {
        "name": "网络流——最大流",
        "description": "最大流",
        "problems": ["P2765", "P2764", "P2763", "P2766", "P2774", "P2805"]
      },
      {
        "name": "网络流——费用流",
        "description": "费用流",
        "problems": ["P2153", "P2053", "P3159", "P2604", "P2050", "P3980"]
      },
      {
        "name": "单调队列",
        "description": "单调队列",
        "problems": ["P2698", "P2216", "P2219", "P2564", "P2569"]
      },
      {
        "name": "概率期望",
        "description": "概率期望",
        "problems": ["P2473", "P2221", "P3317", "P3343", "P3600", "P3830"]
      },
      {
        "name": "二分图",
        "description": "二分图",
        "problems": ["P3386", "P1640", "P1129", "P1963", "P3231", "P2526"]
      },
      {
        "name": "点分治",
        "description": "点分治",
        "problems": ["P2634", "P2664", "P3806", "P3676"]
      },
      {
        "name": "后缀数组",
        "description": "后缀数组",
        "problems": ["P3809", "P1117", "P2178", "P2463", "P2336"]
      },
      {
        "name": "主席树",
        "description": "主席树",
        "problems": ["P2468", "P3157", "P3302", "P3168", "P3313"]
      },
      {
        "name": "数位DP",
        "description": "数位DP",
        "problems": ["P2602", "P3281", "P2518", "P2606"]
      },
      {
        "name": "AC自动机",
        "description": "AC自动机",
        "problems": ["P3808", "P3796", "P2444", "P2414"]
      },
      {
        "name": "平衡树",
        "description": "平衡树",
        "problems": ["P2042", "P2596", "P1110", "P3285", "P3644", "P3765", "P3369"]
      },
      {
        "name": "树链剖分",
        "description": "树链剖分",
        "problems": ["P2590", "P2486", "P2146", "P3258", "P3178"]
      },
      {
        "name": "动态树",
        "description": "动态树",
        "problems": ["P3690", "P2387", "P3203", "P3348"]
      },
      {
        "name": "树套树",
        "description": "树套树",
        "problems": ["P1903", "P3157", "P3332", "P2166", "P3380", "P2137", "P3759"]
      },
      {
        "name": "可持久化Trie树",
        "description": "可持久化Trie树",
        "problems": ["P2048", "P3527", "P3302", "P3168", "P3242", "P3241", "P3293"]
      },
      {
        "name": "莫队算法",
        "description": "莫队算法",
        "problems": ["P1972", "P2336", "P3709", "P2709", "P3674"]
      },
      {
        "name": "分块",
        "description": "分块",
        "problems": ["P1972", "P3396", "P1822", "P2801", "P3203"]
      },
      {
        "name": "莫比乌斯反演",
        "description": "莫比乌斯反演",
        "problems": ["P3768", "P3172", "P3455", "P2522", "P3327"]
      },
      {
        "name": "其他",
        "description": "其他",
        "problems": ["P3377", "P3261", "P3382", "P2571", "P3222", "P3187", "P3199", "P3292", "P2824", "P3285", "P1552"]
      }
    ]
  },
  {
    "name": "USACO",
    "description": "美国经典的算法练习题库,值得一刷",
    "subtasks": [
      {
        "name": "USACO Section 1.1",
        "description": "",
        "problems": ["P1200", "P1201", "P1202", "P1203"]
      },
      {
        "name": "USACO Section 1.2",
        "description": "完全枚举",
        "problems": ["P3864", "P1204", "P1205", "P1206", "P1207"]
      },
      {
        "name": "USACO Section 1.3",
        "description": "贪心",
        "problems": ["P1208", "P1209", "P1211", "P1444", "P3650", "P2693"]
      },
      {
        "name": "USACO Section 1.4",
        "description": "有技巧的枚举",
        "problems": ["P1214", "P1215"]
      },
      {
        "name": "USACO Section 1.5",
        "description": "二进制数",
        "problems": ["P1216", "P1217", "P1218"]
      },
      {
        "name": "USACO Section 2.1",
        "description": "图论和洪水填充",
        "problems": ["P1457", "P1458", "P1459", "P1460", "P1461"]
      },
      {
        "name": "USACO Section 2.2",
        "description": "数据结构与动态规划",
        "problems": ["P1465", "P1466", "P1467", "P1468"]
      },
      {
        "name": "USACO Section 2.3",
        "description": "",
        "problems": ["P1470", "P1472", "P1473", "P1474", "P1475"]
      },
      {
        "name": "USACO Section 2.4",
        "description": "最短路径",
        "problems": ["P1518", "P1519", "P1522", "P1529", "P1530"]
      },
      {
        "name": "USACO Section 3.1",
        "description": "最小生成树",
        "problems": ["P1546", "P2722", "P2723", "P2724", "P2725"]
      },
      {
        "name": "USACO Section 3.2",
        "description": "背包问题",
        "problems": ["P1134", "P2727", "P2728", "P2729", "P2730", "P1828"]
      },
      {
        "name": "USACO Section 3.3",
        "description": "欧拉回路",
        "problems": ["P2731", "P2732", "P1930", "P2733", "P2734"]
      },
      {
        "name": "USACO Section 3.4",
        "description": "计算几何",
        "problems": ["P1827", "P2735", "P2736"]
      },
      {
        "name": "USACO Section 4.1",
        "description": "最优化",
        "problems": ["P2737", "P2738"]
      },
      {
        "name": "USACO Section 4.2",
        "description": "网络流",
        "problems": ["P2740", "P1894", "P2751"]
      },
      {
        "name": "USACO Section 4.3",
        "description": "高精度",
        "problems": ["P2687", "P2752", "P2753"]
      },
      {
        "name": "USACO Section 4.4",
        "description": "",
        "problems": ["P1344", "P2739", "P2741"]
      },
      {
        "name": "USACO Section 5.1",
        "description": "二维凸包",
        "problems": ["P2742", "P2743", "P2749"]
      },
      {
        "name": "USACO Section 5.2",
        "description": "",
        "problems": ["P1560"]
      },
      {
        "name": "USACO Section 5.3",
        "description": "启发式搜索",
        "problems": ["P2701", "P2744", "P2745", "P2746"]
      },
      {
        "name": "USACO Section 5.4",
        "description": "",
        "problems": ["P1345", "P2747", "P2748"]
      },
      {
        "name": "USACO Section 5.5",
        "description": "",
        "problems": ["P1709", "P1856", "P2750"]
      }
    ]
  }
]
.map(task => `# ${task.name}\n\n${task.description}\n\n${task.subtasks.map(subtask => `## ${subtask.name}\n\n${subtask.description}\n\n${subtask.problems.map(problem => `* [${problem}](/problem/${problem})`).join("\n")}\n`).join("\n")}\n`).join("\n").replace(/\n{3,}/g, "\n\n")
文章目录