随笔分类 -  搜索

摘要:题意:给n个木棍,问能不能正好拼成一个正方形。解法:POJ1011的简单版……不需要太多剪枝……随便剪一剪就好了……但是各种写屎来着QAQ代码:#include#include#include#include#include#include#include#include#include#inclu... 阅读全文
posted @ 2015-10-22 20:38 露儿大人 阅读(120) 评论(0) 推荐(0)
摘要:题意:类汉诺塔的一个东西……移动规则与汉诺塔一样,但初始状态为题目中给出的每根棍上一个盘子,目标状态为盘子在棍上按大小顺序排列,盘子只能在相邻的棍儿上移动。解法:广搜并打表记录从目标状态到所有可能的初始状态的答案。我记录每个盘子的位置为状态,vis用七位数组(被队友吐槽还真敢写啊=3=),然后每次转... 阅读全文
posted @ 2015-09-21 16:46 露儿大人 阅读(158) 评论(0) 推荐(0)
摘要:题意:经典的八数码=3=3*3的格子,里面有1~8这8个数字,还有一个空格x,移动空格的位置,直到移到1~8按顺序排好,输出移动的序列。解法:看到题果断写了个广搜……然后T了……百度了一下说广搜虽然慢了点但是也是可以过的嘛……默默看了眼自己代码……唔……好像他们都不是用string路径的……实在懒得... 阅读全文
posted @ 2015-09-14 16:23 露儿大人 阅读(160) 评论(0) 推荐(0)
摘要:题意:给一张地图,给出起点和终点,每移动一步消耗体力abs(h1 - h2) / k的体力,k为当前斗志,然后消耗1斗志,要求到终点时斗志大于0,最少消耗多少体力。解法:bfs。可以直接bfs,用dp维护最小值……也可以用优先队列优化……但是不能找到终点后就直接输出,因为从不同方向到达终点的消耗不同... 阅读全文
posted @ 2015-09-14 15:21 露儿大人 阅读(229) 评论(0) 推荐(0)
摘要:题意:给一个n×n的棋盘,#是可以放棋子的地方,棋子每行每列只能有一个,问放k个棋子的方案数。解法:按行深搜,标记一下列就行了。代码:#include#include#include#include#include#include#include#include#include#include#in... 阅读全文
posted @ 2015-09-01 20:11 露儿大人 阅读(187) 评论(0) 推荐(0)
摘要:题意:在一棵有n个节点的树上放编号从1到n的麻将,要求每个点的儿子节点之间的编号连续,每棵子树内的编号连续。解法:手推一组样例之后就可以得到如下结论然后从根节点一边讨论一边搜就好了。当一个节点只有一个儿子的时候,如果儿子是叶子节点则只有一种放法,如果儿子不是叶子节点则有两种放法。当一个节点有两个儿子... 阅读全文
posted @ 2015-08-12 11:15 露儿大人 阅读(167) 评论(0) 推荐(0)
摘要:题意:在一个只有0和1的矩阵里,从左上角走到右下角, 每次可以向四个方向走,每个路径都是一个二进制数,求所有路径中最小的二进制数。解法:先bfs求从起点能走到离终点最近的0,那么从这个点起只向下或向右走就可以获得位数最少的二进制数,然后贪心的想,如果后或下有0就一定走0,没0就把1都看一遍,以之前搜... 阅读全文
posted @ 2015-08-02 12:31 露儿大人 阅读(120) 评论(0) 推荐(0)
摘要:题意:给一个树型关系图,父亲结点管理儿子结点,问有多少个点管理k个点。解法:dfs。代码:#include#include#include#include#include#include#include#include#include#include#include#include#include#... 阅读全文
posted @ 2015-07-29 16:53 露儿大人 阅读(117) 评论(0) 推荐(0)
摘要:题意:给一个n×m的棋盘,如果一个骑士可以从任意一个位置出发不重复的走遍棋盘的每个格子就输出字典序最短的路径。解法:dfs。暴搜n×m次,只是被字典序输出坑了……而且字母是列序号数字是行序号……这两个总弄反……搜索的时候会只要按字典序搜那8个方向就可以了,搜到第一条满足条件的路径就结束。代码:#in... 阅读全文
posted @ 2015-07-21 16:00 露儿大人 阅读(139) 评论(0) 推荐(0)
摘要:题意:在一条数轴上,一个人想从点n走到点k,他每分钟坐标可以+1或者-1或者×2,问最少多少分钟走到。解法:一个广搜……不知什么原因的wa了一天……最后重写了一遍才过……让我想到了某场cf的B题……也是从n走到k,可以+1或者/2,当时傻傻的写了好长的广搜……后来正解是贪心orz代码:#includ... 阅读全文
posted @ 2015-04-30 15:24 露儿大人 阅读(90) 评论(0) 推荐(0)
摘要:题意:有一些价值1~6的大理石,分别给出价值为1~6的大理石的数量,问能否分成价值相等的两堆。解法:dfs+剪枝,也可以是二进制优化的多重背包。只要看能否搜到总价值的一半就可以了。看了一些博客总结了几个剪枝(如果我理解的有错误希望有大神指正orz):当总价值为奇数时一定不能分成两堆。优先选值比较大的... 阅读全文
posted @ 2015-04-28 19:28 露儿大人 阅读(130) 评论(0) 推荐(0)
摘要:题意:一开始你有若干个等长的木棍,后来把他们随机砍成几小段,问一开始的木棍最短多长。解法:DFS + 剪枝。悲剧的发现自己已经不太会搜索了。代码:#include#include#include#include#include#include#include#include#include#incl... 阅读全文
posted @ 2015-03-25 17:48 露儿大人 阅读(252) 评论(0) 推荐(0)
摘要:题意:一个n * m的棋盘,0或1,每次改变一个格子时同时改变上下左右的格子,问用最少次数将棋盘全变成0的策略。题解:用二进制压缩第一行更改的状态,之后遍历棋盘,如果当前格子为1则改变下方的格子,记录改变次数最小的状态为ans,最后模拟一次ans状态时的策略并输出。代码:#inclu... 阅读全文
posted @ 2015-02-22 16:25 露儿大人 阅读(189) 评论(0) 推荐(0)
摘要:懒病发作了小半年···咳···终于想起我原来还有个博客啊···这月刷大白的图论···第一道题就坑了一下午···因为我判出边界之后只break出一层循环···【哭晕在厕所题意:小J童鞋要逃离一个着火的迷宫,火蔓延的速度跟小J童鞋跑的速度一样,都是一分钟一格,方向都是上下左右四个方向,求小J逃离迷宫的最... 阅读全文
posted @ 2014-10-08 18:48 露儿大人 阅读(124) 评论(0) 推荐(0)