一、全排列
(1)1199:全排列
(2)剪枝思想
(3)P1088 [NOIP2004 普及组] 火星人
二、组合(选与不选)
(1)1317:【例5.2】组合的输出
(2)7-38 找零钱
(3)7-42 子集和问题——组合子集
三、一选多
(1)P2392 kkksc03考前临时抱佛脚
(2)7-43 最佳调度问题
(3)7-45 工作分配问题
(4)P1135 奇怪的电梯
四、迷宫型
(1)P1605 迷宫(求方案数)
(2)1219:马走日(求方案数)
这里用dfs解决,下面有一个bfs解决方法;
原题链接
解析
(3)1215:迷宫(判断是否可达)
(4)1212:LETTERS(找所有可达路径中能达到的最大价值)
(5)1216:红与黑(找所有可达路径的价值总和)
(6)T1212 仙岛求药(最短路问题,到达终点的最小代价)
最短路问题,一般采用bfs比较好;想用dfs解决的话,需要剪枝;
原题链接_计蒜客
原题链接_信奥
解析
(7)P1443 马的遍历(最短路问题—BFS)
(7)P1825 [USACO11OPEN]Corn Maze S(最短路问题—BFS)
(8)P2895 [USACO08FEB]Meteor Shower S(最短路问题—BFS)
(8)P1162 填涂颜色(BFS模板)
(9)状压BFS
下面这几道涉及到状态压缩,比普通的题会稍微复杂一点;
T1214 鸣人和佐助
T1215 拯救公主——bfs+三维数组标记+二进制状态压缩
五、连通块
(1)1335:【例2-4】连通块(dfs、bfs)
求连通块数量,可以顺便求一下连通块中的最大数量;
原题链接
解析
(2)P1596 [USACO10OCT]Lake Counting S
(3)水儿的绘画
求连通块数量(此题默认只有两个),连通两个连通块
水儿的绘画
(4)L2-013 红色警报 (25 分)(并查集解决连通块)
当然求连通块也可以用并查集来做,下面提供一个例题
题目链接
解析