随笔分类 -  挑战程序设计竞赛

P34: 迷宫的最短路径(宽度优先搜索求最短路径最少操作)
摘要:/* P34: 迷宫的最短路径 核心:用队列实现宽度优先搜索,队列里面放的都是将要走的位置, 队列pop出来的位置是当前要走的位置 队列push进去的位置是周围所有可走但还未走的位置 到终点或队列为空时退出。分别表示可达和不可达. 技巧:可以用大小相同的flag[][]来标记一些信息。这里我用-1表示未走... 阅读全文
posted @ 2018-04-03 09:17 jkn1234 阅读(324) 评论(0) 推荐(0)
P32: 积水计数
摘要:“递归”是实现深度优先搜索的最好的方式。定义好规则然后就这样递归的循环下去直到走到终点 来自 <https://zh.wikipedia.org/wiki/%E6%B7%B1%E5%BA%A6%E4%BC%98%E5%85%88%E6%90%9C%E7%B4%A2> 阅读全文
posted @ 2018-04-03 09:03 jkn1234 阅读(246) 评论(0) 推荐(0)
P30:部分和问题
摘要:/* P30页:部分和问题 核心:用递归实现深度优先搜索是很方便的事情 问题:n个数中选出任意个数使得和为k, 找到返回find,灭有返回not find */ #include #include #include using namespace std; const int NUM = 1010; int n, k; int a[NUM]; vect... 阅读全文
posted @ 2018-04-03 08:40 jkn1234 阅读(175) 评论(0) 推荐(0)
P20:难度增加的抽签问题
摘要:/* P20页:难度增加的抽签问题 核心:处理大数据时,二分查找算法lgn的时间复杂度是很省时间的 问题:n个签,有放回抽取4次,求和是否有可能为m,n #include #include #include using namespace std; const int Max = 1010; int n, m; int k[Max]; int main(voi... 阅读全文
posted @ 2018-04-03 00:03 jkn1234 阅读(233) 评论(0) 推荐(0)