搜索
文章平均质量分 76
讲解搜索算法,包括广搜和深搜等等
...,,,,,,
不知道干什么的
展开
-
NOI / 2.5基本算法之搜索 323:棋盘问题
C++NOI北大题库2.5基本算法之搜索323:棋盘问题http://noi.openjudge.cn/ch0205/323/代码+注释原创 2022-07-19 15:42:58 · 361 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索1817:城堡问题
程序从标准输入设备读入数据。第1、2行每行1个整数,分别是南北向、东西向的方块数。在接下来的输入行里,每个方块用一个数字(0≤p≤50)描述。用一个数字表示方块周围的墙,1表示西墙,2表示北墙,4表示东墙,8表示南墙。每个方块用代表其周围墙的数字之和表示。城堡的内墙被计算两次,方块(1,1)的南墙同时也是方块(2,1)的北墙。输入的数据保证城堡至少有两个房间。......原创 2022-07-27 19:12:36 · 533 阅读 · 1 评论 -
NOI / 2.5基本算法之搜索7834:分成互质组(详细讲解)
给定n个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?原创 2022-07-29 11:46:58 · 452 阅读 · 1 评论 -
讲解C++中的深度优先搜索(DFS)
所以,将目前未放置的数中除了n-1之外的最小数n放入第n-1个盒子里面,再往下走,走到了第n个盒子,手里剩下了一个数字n-1,自然放入第n个了。继续回溯:当前在第n个盒子,回溯走到了第n-1个盒子(并取出了第n个盒子里的数字n-1),我们发现这两数字都在第n-1盒子放过,那就只能再回溯了(顺便拿起第n-1个盒子的数字n),走到了第n-2个盒子上,取出这个盒子的数n-2。当前,我们的状态时,在第n-2盒子上,手里有数字,n-2,n-1,n;1,2,3,···,n-1,n 和 1,2,3,···,n,n-1。.原创 2022-08-29 16:51:19 · 3301 阅读 · 5 评论 -
NOI / 2.5基本算法之搜索-1818:红与黑
想法:从起点开始进行深搜,上下左右四个方向进行深搜,每搜到一个地方累加的变量的值就加1,然后再从新结点进行一次深搜,直到深搜递归正常返回之后,黑砖的数量也就算出来了,主函数只需要在输出就行了。首先需要两个增量数组,分别表示新结点与原来的结点之间的关系,一个是x坐标,一个是y坐标,上下左右顺序无所谓,但需要配对。我们还需要一个状态数组,用来标记每个结点是否走过,不能重复走,每标记一个黑砖,状态则标记为走过。对每个数据集合,分别输出一行,显示你从初始位置出发能到达的瓷砖数(记数时包括初始位置的瓷砖)。...原创 2022-08-18 21:42:55 · 166 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索-6266:取石子游戏
运用"辗转相减法",完美模拟取石子过程,因为每次剩下的石子数多的那一堆如果大于少的那一堆的两倍或是他的整数倍,则此时正要取的人获胜,1代表先手胜,0代表后手胜。根据提示和找规律,我们发现:假设石子数目为(a,b)且a >= b,如果[a/b] >= 2则先手必胜,如果a%b==0则先手必胜。假设石子数目为(a,b)且a >= b,如果[a/b] >= 2则先手必胜,如果[a/b]...原创 2022-08-18 21:06:57 · 212 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索8465:马走日(详细讲解)
马在中国象棋以日字形规则移动。请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。第一行为整数T(T < 10),表示测试数据组数。每一组测试数据包含一行,为四个整数,分别为棋盘的大小以及初始位置坐标n,m,x,y。每组测试数据包含一行,为一个整数,表示马能遍历棋盘的途径总数,0为无法遍历一次。15 4 0 0。...原创 2022-08-17 10:52:49 · 604 阅读 · 3 评论 -
NOI / 2.5基本算法之搜索1792:迷宫(详细讲解)
一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。如果起点或者终点有一个不能通行(为#),则看成无法办到。...原创 2022-08-04 12:50:28 · 793 阅读 · 0 评论 -
NOI / 2.5基本算法之搜索1789:算24(详细讲解)
给出4个小于10个正整数,你可以使用加减乘除4种运算以及括号把这4个数连接起来得到一个表达式。现在的问题是,是否存在一种方式使得得到的表达式的结果等于24。这里加减乘除以及括号的运算结果和运算的优先级跟我们平常的定义一致(这里的除法定义是实数除法)。比如,对于5,5,5,1,我们知道5 * (5 – 1 / 5) = 24,因此可以得到24。又比如,对于1,1,4,2,我们怎么都不能得到24。...原创 2022-08-02 19:42:23 · 453 阅读 · 0 评论