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判定是否可行)

  • 相关阅读:
    饿了么P7级前端工程师进入大厂的面试经验
    前端程序员面试的坑,简历写上这一条信息会被虐死!
    这次来分享前端的九条bug吧
    移动端开发必会出现的问题和解决方案
    创建一个dynamics 365 CRM online plugin (八)
    创建一个dynamics 365 CRM online plugin (七)
    创建一个dynamics 365 CRM online plugin (六)
    创建一个dynamics 365 CRM online plugin (五)
    使用User Primary Email作为GUID的问题
    怎样Debug Dynamics 365 CRM Plugin
  • 原文地址:https://www.cnblogs.com/mhpp/p/6604037.html
Copyright © 2011-2022 走看看