随笔分类 -  DFS搜索

摘要:思路: 建树:就是在每一分钟进行分枝,是原地不动,还是移动。然后,走完整个过程。 但是,我其实还是走了弯路,因为,最开始想的是剪枝,没有用记忆化搜索。但是,肯定是能用dp来做,啊啊啊啊阿,能用dp肯定是可以用记忆化搜索的啊! 记忆化:因为后面的结果是前面局部解的组合,也就是说后面的解对前面的局部解没 阅读全文
posted @ 2019-04-09 20:47 青山新雨 阅读(256) 评论(0) 推荐(0) 编辑
摘要:思路:将好感度x+y作为体积, 幸福度x-y作为作为价值, 然后就是一个经典的背包问题了。emmmmm,还可以特判一下,因为幸福度为0时就是最小了,没有必要看后面的了吧。 其实,我自己做的时候,沙雕的认为是每一对的幸福度的绝对值之和,原来是总的的绝对值。 阅读全文
posted @ 2019-04-09 18:37 青山新雨 阅读(267) 评论(0) 推荐(0) 编辑
摘要:感觉这道题还是蛮简单的,不过使使用了4个队列(其实只是一个)emmmmm,还是很好的 阅读全文
posted @ 2019-04-08 22:14 青山新雨 阅读(255) 评论(0) 推荐(0) 编辑
摘要:思路:这道题还是用了小小的剪枝,这里要注意的是该题有很多中构建树的顺序,但是,在这众多顺序中不一定都能保证输出的方案字典序最小。 构建搜索树:如图构建 剪枝,emmm,看代码: 阅读全文
posted @ 2019-04-06 16:26 青山新雨 阅读(295) 评论(0) 推荐(0) 编辑
摘要:思路:就是白白的模拟 阅读全文
posted @ 2019-04-06 09:59 青山新雨 阅读(302) 评论(0) 推荐(0) 编辑
摘要:emmmmm,我还是看了题解的。。。。尴尬,其实不用记忆化搜索也是可以的。因为我不用也是最后一个点超时。但是我是用的贪心+DFS。。。超时的原因是贪心。。。。mmp,本来加贪心就是为了不超时。。。。 思路: 搜索树的构建:就是把这一层的点把所有未访问的点当成孩子,这就构成了搜索树! 记忆化: 就是把 阅读全文
posted @ 2019-04-06 09:15 青山新雨 阅读(283) 评论(0) 推荐(0) 编辑
摘要:本来是个搜索题,但是自觉的成了背包! 多重用正序,01用逆序。 抽象出来一下,一个物体的体积为ai, 每次装入背包需要bi(在题目中为菜数量)分钟(这个题目只是bi为 1 而已)问在r分钟内,装比n大的方案数。 这是妥妥的,多条件方案01背包啊!妥妥的二维啊。 dp[i][j] 表示,花了 i 分钟 阅读全文
posted @ 2019-04-05 22:19 青山新雨 阅读(230) 评论(0) 推荐(0) 编辑
摘要:这里详细讲一下剪枝的点: 因为,可以重复在同一个点上走动。所以,这个步数是无穷的。 剪枝一:步数< n*m; (因为起点不算所以不取等号) 剪枝二:步数当大于已有的答案时,直接退出DFS,因为你已经知道这个线路不是答案了,那就没有必要走出去的必要了。(当时,没想到,还傻傻的想了半天) 阅读全文
posted @ 2019-04-05 21:39 青山新雨 阅读(346) 评论(0) 推荐(0) 编辑
摘要:技巧:就是偶数位的回文数字一定不是质数 证明:奇数位之和sum1==偶数位之和sum2的数字可以被11整除。(11除外,这是一个坑点) 最高位,最低位必须是 1, 3, 7, 9 暴力枚举:也就是说,直接枚举奇数位(1,3,5,7)就可以了。至于回文嘛,除去最高位和最低位,也最多是枚举3位数字,时间 阅读全文
posted @ 2019-04-05 09:25 青山新雨 阅读(354) 评论(0) 推荐(0) 编辑
摘要:就是在输入的时候把 ‘o’ 的放在队里,然后,直接BFS就可以了。感觉是水题。 阅读全文
posted @ 2019-04-04 18:04 青山新雨 阅读(256) 评论(0) 推荐(0) 编辑
摘要:暴力+模拟 阅读全文
posted @ 2019-04-04 13:06 青山新雨 阅读(248) 评论(0) 推荐(0) 编辑
摘要:题意:https://ac.nowcoder.com/acm/problem/16813 思路: 深度搜索:每一层枚举一个面值,然后通过dp进行检查,并通过已知面值得到最多n张得到的最大表示数。 其实,该搜索就是一个比较裸的,进行剪枝,枚举的面值还是存在范围的,上一次面值+1~n*sum(sum表示 阅读全文
posted @ 2019-02-07 21:08 青山新雨 阅读(283) 评论(0) 推荐(0) 编辑
摘要:题目很简单,把一个正整数分割成N个正整数之和。但是你得把所有的划分方法列出来,以字典序升序排序。对于每种划分方法,小的数字在前面。 思路:直接深度优先搜索,注意要判断前一位一定会比将要放入答案的因子小。这里,要设一个sum,当sum==n时,表示方案成功,应为sum在回溯的时候有用。 1192:放苹 阅读全文
posted @ 2018-12-03 21:29 青山新雨 阅读(321) 评论(0) 推荐(0) 编辑
摘要:农民约翰的母牛总是产生最好的肋骨。 你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。 农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数;三根肋骨 733是质数;二根肋骨 阅读全文
posted @ 2018-12-01 16:55 青山新雨 阅读(327) 评论(0) 推荐(0) 编辑
摘要:题目描述 Description 一个朋友网络,如果a认识b,那么如果a第一次收到某个消息,那么会把这个消息传给b,以及所有a认识的人。 如果a认识b,b不一定认识a。 所有人从1到n编号,给出所有“认识”关系,问如果i发布一条新消息,那么会不会经过若干次传话后,这个消息传回给了i,1<=i<=n。 阅读全文
posted @ 2018-11-23 17:24 青山新雨 阅读(265) 评论(0) 推荐(0) 编辑
摘要:这是菜鸡的我第一次写这类题目: 题意:就是在N*N的棋盘上,每一行,每一列,所有的对角线都只能有一个棋子。 先分析:假若N=4; 则为其中的一种答案。要输出左右的解,肯定要枚举出所有的解。那么非常自然的想到递归! 根据题意,每一步棋子都满足,在一行,一列,两个对角线。那么怎么解决呢? 总体递归思路, 阅读全文
posted @ 2018-11-23 15:50 青山新雨 阅读(338) 评论(0) 推荐(0) 编辑
摘要:这大概是我写的第一个DFS 题目描述 农民约翰的母牛总是产生最好的肋骨。你能通过农民约翰和美国农业部标记在每根肋骨上的数字认出它们。农民约翰确定他卖给买方的是真正的质数肋骨,是因为从右边开始切下肋骨,每次还剩下的肋骨上的数字都组成一个质数,举例来说: 7 3 3 1 全部肋骨上的数字 7331是质数 阅读全文
posted @ 2018-09-03 23:01 青山新雨 阅读(461) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示