zoukankan      html  css  js  c++  java
  • 搜索题推荐

    (转自网络博客):

    POJ

    POJ 1376 – Robot(基础)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=1376

    题意:略

    解法:bfs,A*….

    POJ 2688 – Cleaning Robot(基础)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=2688

    题意:bfs后转换为tsp问题

    解法:bfs+dp,bfs+dfs

    相关:http://hi.baidu.com/zfy0701/blog/item/ceb06f261749a6128a82a1b2.html

    POJ 3322 – Bloxorz I(基础)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=3322

    题意:略,这个游戏本身很好玩http://jandan.net/2008/01/24/bloxorz.html

    解法:广搜,双向广搜

    相关:http://hi.baidu.com/zfy0701/blog/item/d7b6490f847948e8ab6457c6.html

    POJ 2308 – Dearboy’s Puzzle(中等,但做的人少?)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=2308

    题意:判断连连看是否有解

    解法:DFS + BFS

    相关:http://hi.baidu.com/zfy0701/blog/item/c62f41af65aa1fca7cd92afc.html

    POJ 1324 – Holedox Moving(中等)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=1324

    题意:略

    解法:A*,dfs + 上界剪枝,广搜

    相关:http://hi.baidu.com/zfy0701/blog/item/7fcaba2c3d5425e98a1399cf.html

    http://hi.baidu.com/zfy0701/blog/item/a3c44ecc049b1c1501e92806.html

    POJ 1084 – Square Destroyer(中等,经典题)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=1084

    题意:把每个正方型看做集合中的元素,每个木棒看做是一个子集,求最小的子集覆盖

    解法:dfs,A*,广搜肯定爆空间

    POJ 2449 Remmarguts’ Date(中等,强烈推荐)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=2449

    题意:经典问题:K短路

    解法:dijkstra+A*,方法很多

    相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144

    POJ 2044 – Weather Forecast(中等)

     

    http://acm.pku.edu.cn/JudgeOnline/problem?id=2044

    题意:略

    解法:广搜,dp,深搜

    相关:http://hi.baidu.com/zfy0701/blog/item/d7b6490f847948e8ab6457c6.html

    POJ 3635 full tank?(中等)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=3635

    题意:最短路变形

    解法:广搜

    相关:http://hi.baidu.com/hnu_reason/blog/item/086e3dccfc8cb21600e9286b.html

    POJ 3074 – Sudoku(中等)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=3074

    题意:数独游戏,数据比2676强很多,但比3076弱

    解法:用dfs回溯基本可过,不过每次应选择可能填的数字最少的格子搜

    更快的方法是先转换成exact cover问题,然后用经典dancing links解决,

    dancing links原始论文:http://lanl.arxiv.org/PS_cache/cs/pdf/0011/0011047v1.pdf

    翻译:http://sqybi.com/works/dlxcn/

    POJ 1475 – Pushing Boxes(中等,很推荐)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=1475

    题意:推箱子游戏

    解法:双重bfs(对箱子bfs 时 对人bfs),A*

    POJ 1077 – Eight(中等,此题不做人生不完整)

    http://acm.pku.edu.cn/JudgeOnline/problem?id=1077

    题意:八数码问题,超经典题

    解法:广搜,A*,双向广搜

    poj1184聪明的打字员

    如果觉得自己BFS的题做得差不多了,可以做一下这道题.作了这道题开始对BFS刮目相看了~花了整整一晚上写代码,改代码~

    POJ 1069 -The Bermuda Triangle(难)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=1069
    题意:用给定三角型填充六边形
    解法:此题的思想上精华在于坐标化
    ps:传说中比较bt,确实比较bt,主要很容易写错,我ac了,但程序没完全对....

    POJ 1077 - Eight(中等,此题不做人生不完整)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=1077
    题意:八数码问题,超经典题
    解法:广搜,A*,双向广搜
    相关:http://hi.baidu.com/zfy0701/blog/item/7fcaba2c3d5425e98a1399cf.html
    (百度之星的版本,强烈推荐):http://acm.hnu.cn:8080/online/?action=problem&type=show&id=10466&courseid=0

    POJ 1084 - Square Destroyer(中等,经典题)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=1084
    题意:把每个正方型看做集合中的元素,每个木棒看做是一个子集,求最小的子集覆盖
    解法:dfs,A*,广搜肯定爆空间

    POJ 1167 - The Buses(好难啊)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=1167
    题意:这道题综合了很多经典的深搜技巧,狂顶
    解法:dfs

    POJ 1190 - 生日蛋糕(基础,好题)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=1190
    题意:略
    解法:dfs,题偏简单,但做出来还是有些感觉的

    POJ 1324 - Holedox Moving(中等)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=1324
    题意:略
    解法:A*,dfs + 上界剪枝,广搜
    相关:http://hi.baidu.com/zfy0701/blog/item/7fcaba2c3d5425e98a1399cf.html
    http://hi.baidu.com/zfy0701/blog/item/a3c44ecc049b1c1501e92806.html

    POJ 1376 - Robot(基础)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=1376
    题意:略
    解法:bfs,A*....

    POJ 1475 - Pushing Boxes(中等,很推荐)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=1475
    题意:推箱子游戏
    解法:双重bfs(对箱子bfs 时 对人bfs),A*

    POJ 1945 - Power Hungry Cows(??)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=1945
    题意:略
    解法:在一份解题报告中被列为难题,不过好好像写了个很简单很暴力的bfs就过了...速度还是有些慢,暂时想不到好的启发函数

    POJ 2044 - Weather Forecast(中等)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=2044
    题意:略
    解法:广搜,dp,深搜
    相关:http://hi.baidu.com/zfy0701/blog/item/d7b6490f847948e8ab6457c6.html

    POJ 2286 - The Rotation Game(较难)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=2286
    题意:略
    解法:IDA*(迭代加深+上下界强剪
    相关:http://hi.baidu.com/zfy0701/blog/item/ce0f802261bfbba14723e871.html

    POJ 2308 - Dearboy's Puzzle(中等,但做的人少?)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=2308
    题意:判断连连看是否有解
    解法:DFS + BFS
    相关:http://hi.baidu.com/zfy0701/blog/item/c62f41af65aa1fca7cd92afc.html

    POJ 2426 Remainder(较难,=)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=2426
    题意:略,主要是数论部分比较容易让人抓狂
    解法:bfs
    相关:http://hi.baidu.com/zfy0701/blog/item/7fcaba2c3d5425e98a1399cf.html

    POJ 2449 Remmarguts' Date(中等,强烈推荐)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=2449
    题意:经典问题:K短路
    解法:dijkstra+A*,方法很多
    相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=1144

    POJ 2688 - Cleaning Robot(基础)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=2688
    题意:bfs后转换为tsp问题
    解法:bfs+dp,bfs+dfs
    相关:http://hi.baidu.com/zfy0701/blog/item/ceb06f261749a6128a82a1b2.html

    POJ 2908 - Quantum(中等)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=2908
    题意:其实就是找单源最短路径
    解法:优先队列广搜(即dijkstra),建议用位运算优化

    POJ 3074 - Sudoku(中等)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=3074
    题意:数独游戏,数据比2676强很多,但比3076弱
    解法:用dfs回溯基本可过,不过每次应选择可能填的数字最少的格子搜
    更快的方法是先转换成exact cover问题,然后用经典dancing links解决,
    dancing links原始论文:http://lanl.arxiv.org/PS_cache/cs/pdf/0011/0011047v1.pdf
    翻译:http://sqybi.com/works/dlxcn/

    POJ 3322 - Bloxorz I(基础)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=3322
    题意:略,这个游戏本身很好玩(http://jandan.net/2008/01/24/bloxorz.html
    解法:广搜,双向广搜
    相关:http://hi.baidu.com/zfy0701/blog/item/d7b6490f847948e8ab6457c6.html

    POJ 3460 - Booksort(较难,很推荐)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=3460
    题意:略
    解法:IDA*,A*,DFS*
    相关:http://hi.baidu.com/zfy0701/blog/item/5c5a404b0f73ecf582025ce4.html

    POJ 3523 - The Morning after Halloween(较难)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=3523
    题意:把所有机器人移到各自的位置,不能相撞或重合
    解法:我的状态设计太暴力了:以所有机器人位置表示状态。然后用A*过,排倒数第几,郁闷。谁知道好的状态设计方法告诉我^_^

    POJ 3633 - Copying DNA(较难)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=3633
    题意:一个填充字符串的搜索题
    解法:各种搜法皆宜
    相关:算法的实现较挑战,我是参考了 http://www.wiskey86.cn/wordpress/?p=54 才搞定的

    POJ 3635 full tank?(中等)
    http://acm.pku.edu.cn/JudgeOnline/problem?id=3635
    题意:最短路变形
    解法:广搜
    相关:http://hi.baidu.com/hnu_reason/blog/item/086e3dccfc8cb21600e9286b.html

     

    HDU

    1241       Oil Deposits (dfs的连通块个数)

    1016       Prime Ring Problem(基础)

    1584       蜘蛛牌(简单dfs,简单的剪枝,还有人用DP做(???))

    1426       Sudoku Killer(练习递归的好题目 or Dancing links(???))

    2510       符号三角形(打表题,写写打表程序还是不错的)

    2553       N皇后问题(在n较小时,是经典的练习递归枚举的题目,n较大时状压(???))

    3350       #define is unsafe (练习递归的好题目)(用结构体做返回值同时返回多个参数)

    2821       Pusher( 看上去有点吓人,实际是简单题,搜就好了 )

    2782       The Worm Turns(实际是简单题,搜就好了)

    2616       Kill the monster(bfs+位运算 或 dfs 或 STL枚举全排列,总之,就是暴力……)

    3500       Fling(实际是简单题,搜就好了)

    2514       Another Eight Puzzle

    1547       Bubble Shooter(思路是搜两次,dfs或bfs)

    1175       连连看(dfs 或 bfs)

    1728       逃离迷宫(和连连看一样)

    剪枝:

    典型题目:

    1010       Tempter of the Bone(标准迷宫dfs,学习剪枝的开始)

    学习了: 极限情况下的剪枝

        奇偶性剪枝

        ((a,b)走到(c,d) a+b c+d 奇偶性相同,需要走偶数步;否则走奇数步)

    1455       Sticks(剪枝的好题目,黑书例题,坑了我好久的说)

    学习了:  排序后解答树同层避免重复搜索

                 调整法(全集不行与子集肯定不行)

                 想法:每根小棍子都要被配对,当前情况下第一根无法配对,直接return

    避免重复的题目还有:

    1258       Sum It Up

    2610       Sequence one( 让我认识了 stable_sort()  )

    2611       Sequence two( 在”2610 Sequence one”的基础上稍加修改即可)

     

    Bfs:

     

    一些简单题目:

    1180       诡异的楼梯 (bfs可以加自己)

    2102       A计划

    1240       Asteroids! (单纯的三维bfs )

    1253       胜利大逃亡 (单纯的三维bfs,加个剪枝: a+b+c-3>limit快了一倍)

    1548       A strange lift  

    2717       Catch That Cow

    1372       Knight Moves(或【双广】也可以)

    1312       Red and Black

    2612       Find a way

    2531       Catch him    

    1252       Hike on a Graph

     

    找状态hash判重很重要

    帮助我理解“状态”的题目:

    1732       Push Box(8维数组hash状态)

    1429       胜利大逃亡(续)

    理解:

      一开始不知道怎么搜

      和队友探讨,让我认识到 宽搜是很盲目,很随意的事情

      搜就好了,碰到目标节点再说

    “状态”练习题目:

    1254       推箱子         ( bfs套bfs,走过的点还可以再走 )

    1495       非常可乐(白书的例题—“倒水问题”)

    2364       Escape

    2579       Dating with girls(2)

    1104       Remainder(自己在做的过程中逐渐找到了”状态”,和数论沾点边)

     

    bfs中经常碰到这样一类问题,加入节点的顺序与队列中节点的单调性不一致,这个时候用到优先队列来代替普通队列。我自己是用一个delay(延迟标记),让这类节点先只向自己拓展,之后再向其他节点拓展。

    “延迟”相关题目:

    1240       Rescue (可以加自己,延迟入门)

    4198       Quick out of the Harbour

    1206       Ignatius and the Princess I(性价比高的宽搜题目)

    2416       Treasure of theChimpIsland

    2653       Waiting ten thousand years for Love

    ( 从这里引入了Dijkstra 最短路算法??????? )

     

    还有就是【双向广搜】

    碰到了几道可以用双广解决的题目,用普通bfs也可以:

    1401       Solitaire       (【双广】,用普通bfs也能过)(好题)

    1195       Open the Lock(普通bfs,状态,或【双广)

     

    一个问题:

    判重用数组有时是严重浪费的,状态并没有那么多,但为了能完全表示,浪费了很多空间,甚至开不下数组,这个时候用hash技术……(还不太会%>_<%)

     

    Dfs&Bfs:

    1044       Collect More Jewels(好题)

    这个题目提供了一种思路:

           bfs预处理构造隐式图,然后dfs枚举所有情况求出最优解

    1072       Nightmare(和上题同样的思路)

    1983       Kaitou Kid - The Phantom Thief (2) (好题)(dfs枚举可能情况,然后bfs判定是否可行)

  • 相关阅读:
    基本的Dos命令
    OneCloud记录
    Wireguard笔记
    windows网络流量监控
    CoreDNS笔记
    Goland 使用[临时]
    js for循环的同步代码
    看我如何用微信上线CobaltStrike
    图数据库 Nebula Graph 在 Boss 直聘的应用
    熵池 在计算机科学与金融学中的应用
  • 原文地址:https://www.cnblogs.com/mhpp/p/6604037.html
Copyright © 2011-2022 走看看