上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 30 下一页
摘要: 这题是深搜。 搜索边界就是当我们走出棋盘并且棋子数目不为0,我们就返回。 另一个边界就是,当棋子数目为0,无论在哪,我们都让方法数加一,然后返回。 搜索的方向就是按行搜索,对列考察,如果是棋盘且此列没放过棋子,那我们就搜索这个点,此列标记为1。 然后对这个点搜索之后,我们就要让这个深搜回溯,清空标记 阅读全文
posted @ 2019-02-20 11:06 xyee 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 这题是并查集,然后没有什么弯弯绕。 阅读全文
posted @ 2019-02-20 09:48 xyee 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 这题的话是next数组的性质来做的,假设next[len],它表示的意思就是对于len之前,总共有几个重复的。 既然是重复的,那就可以把前面重复的删掉,然后后面的就是完全不重复的一节,然后它就是最短循环节。 具体图示在这篇博客里面:https://www.cnblogs.com/xyqxyq/p/1 阅读全文
posted @ 2019-02-20 09:25 xyee 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 这题可以用dfs写,我们记忆化搜索。 我们定义一个step和time数组,分别表示走到这点的最小步数,time表示走到该点炸弹还剩多少时间。 递归边界一是,如果走到该点,时间等于0,我们就返回。 如果走到了终点并且我们这次走到这点的最小步数小于了之前的答案,我们就更新答案并返回。 剪枝,首先越界剪枝 阅读全文
posted @ 2019-02-19 18:29 xyee 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 这题是最短循环节,然后我们尝试小于字符串长度的所有长度,如果符合,我们就输出。 如果它等于0,说明它不循环,因为之前并没有重复的,如果i%(i-next[i])==0说明它是循环的,然后除一下得到周期就可以了。 详解见:https://www.cnblogs.com/xyqxyq/p/1039718 阅读全文
posted @ 2019-02-18 17:34 xyee 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 这题是最短循环节,然后我们尝试小于字符串长度... 阅读全文
posted @ 2019-02-18 17:34 xyee 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 其实len-next[len]的意思是,原串的长度-前面重复串的长度=不重复串的长度。放张严蔚敏老师的写法:最后一个数字才是next[len](自己手演,只讲式子)第一个串:aaa,前面重复的是aa,然后减去之后只剩下a,长度为1。第二个串:abca,nex... 阅读全文
posted @ 2019-02-18 15:31 xyee 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 这题就是记忆化搜索,其实很像数位dp的写法。这题首先,看一眼,甚至看好几眼都看不出边界在哪,让人有点摸不着头脑。所以我们直接开一个dp数组,让dp数组反向更新一个最大值,然后上层的递归直接使用就可以了。这时候边界条件就很明显了,sum = max(sum, ... 阅读全文
posted @ 2019-02-18 10:06 xyee 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 这题就是深搜加剪枝,有一个很明显的剪枝,因为题目中给出了一个deadline,所以我们一定要用这个deadline来进行剪枝。题目的意思是求到达每个点的时间总和,当时把题看错了,卡了好久。剪枝一:走到这个点的时间+再走到下一个点的时间>该点的死线剪枝二:我们... 阅读全文
posted @ 2019-02-17 18:18 xyee 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 这题的话,卡了有两个小时左右,首先更新地图的时候越界了,我们进行更新的时候,要判断一下是不是小于零了,越界就会Runtime Error。然后bfs 的时候,我没有允许它搜出300以外的范围,然后就在300以内搜,然后就错了,实际上题目的意思是流星雨的轰炸范... 阅读全文
posted @ 2019-02-17 15:28 xyee 阅读(144) 评论(0) 推荐(0) 编辑
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 30 下一页