DFS
深度优先搜索DFS
cutlery1137
这个作者很懒,什么都没留下…
展开
-
蓝桥杯 机器人塔【DFS】
X星球的机器人表演拉拉队有两种服装,A和B。他们这次表演的是搭机器人塔。类似: A B B A B A A A B B B B B A BA B A B B A队内的组塔规则是:A 只能站在 AA 或 BB 的肩上。B 只能站在 AB 或 BA 的肩上。你的任务是帮助拉拉队计算一下,在给定A与B的人数时,可以组成多少种花样的塔。输入一行两个整数 M 和 N,空格分开(0< M,N<500),分别表示A、B的人数,保证人数合理性。要求输出一个整数,原创 2020-11-10 23:07:28 · 802 阅读 · 0 评论 -
蓝桥杯 激光样式【DFS】
x星球的盛大节日为增加气氛,用30台机光器一字排开,向太空中打出光柱。安装调试的时候才发现,不知什么原因,相邻的两台激光器不能同时打开!国王很想知道,在目前这种bug存在的情况下,一共能打出多少种激光效果?显然,如果只有3台机器,一共可以成5种样式,即:全都关上(sorry, 此时无声胜有声,这也算一种)开一台,共3种开两台,只1种30台就不好算了,国王只好请你帮忙了。要求提交一个整数,表示30台激光器能形成的样式种数。正确答案:2178309代码如下:#include <ios原创 2020-10-31 13:43:33 · 235 阅读 · 0 评论 -
蓝桥杯 平方十位数【DFS】
由0~9这10个数字不重复、不遗漏,可以组成很多10位数字。这其中也有很多恰好是平方数(是某个数的平方)。比如:1026753849,就是其中最小的一个平方数。请你找出其中最大的一个平方数是多少?程序说明:注意开long long代码如下:#include <iostream>#include <cmath>using namespace std;int book[11], st[11];long long res;long long trans() {原创 2020-10-30 19:38:42 · 139 阅读 · 0 评论 -
蓝桥杯 牌型种数【DFS】
小明被劫持到X赌城,被迫与其他3人玩牌。一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。答案:3598180程序说明:dfs有两个参数,cnt记录选了多少张牌,k记录递归了多少层(分析可知最多不能超过13层)。cnt等于13时代表正好凑够了13张牌,res就加一。当拿到的牌数大于13,或者递原创 2020-10-24 18:42:20 · 203 阅读 · 0 评论 -
蓝桥杯 组队【DFS】
作为篮球队教练,你需要从以下名单中选出 1 号位至 5 号位各一名球员,组成球队的首发阵容。每位球员担任 1 号位至 5 号位时的评分如下表所示。请你计算首发阵容 1号位至 5 号位的评分之和最大可能是多少?1 97 90 0 0 02 92 85 96 0 03 0 0 0 0 934 0 0 0 80 865 89 83 97 0 06 82 86 0 0 07 0 0 0 87 908 0 97 96 0 09 0 0 89 0 010 95 99 0 0 011 0 0 96原创 2020-10-17 23:46:13 · 546 阅读 · 2 评论 -
蓝桥杯 9数算式【DFS】
观察如下的算式:9213 x 85674 = 789314562左边的乘数和被乘数正好用到了1~9的所有数字,每个1次。而乘积恰好也是用到了1~9的所有数字,并且每个1次。请你借助计算机的强大计算能力,找出满足如上要求的9数算式一共有多少个?注意:1.总数目包含题目给出的那个示例。2.乘数和被乘数交换后作为同一方案来看待。程序说明:生成9的全排列,然后分割成两部分a和b(用隔板法),判断a × b是否满足题意。注意最后的答案要除以2。正确答案:1625代码如下:#include &l原创 2020-10-13 20:40:21 · 277 阅读 · 0 评论 -
洛谷P1036 选数【DFS】
题目链接:P1036 选数代码如下:#include <iostream>using namespace std;const int N = 60;int a[N], n, k, res[N], cnt;//判断质数bool prime(int n) { for(int i = 2; i * i <= n; i++) { if(n % i == 0) return false; } return true;原创 2020-10-08 23:27:45 · 165 阅读 · 0 评论 -
蓝桥杯 带分数【DFS】【枚举】
题目链接:AcWing 1209. 带分数100 可以表示为带分数的形式:100=3+69258/714还可以表示为:100=82+3546/197注意特征:带分数中,数字 1∼9分别出现且只出现一次(不包含 0)。类似这样的带分数,100有 11种表示法。输入格式一个正整数。输出格式输出输入数字用数码 1∼9不重复不遗漏地组成带分数表示的全部种数。数据范围1≤N<106输入样例1:100输出样例1:11输入样例2:105输出样例2:6程序说明:先求出1~9原创 2020-10-08 20:10:55 · 179 阅读 · 0 评论 -
leetcode 695. 岛屿的最大面积【DFS】
题目链接:695. 岛屿的最大面积给定一个包含了一些 0 和 1 的非空二维数组 grid 。一个 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在水平或者竖直方向上相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。找到给定的二维数组中最大的岛屿面积。(如果没有岛屿,则返回面积为 0 。)示例 1:[[0,0,1,0,0,0,0,1,0...原创 2020-03-17 20:14:06 · 183 阅读 · 0 评论 -
洛谷P1141 01迷宫【记忆化搜索】
题目链接:P1141 01迷宫程序说明:可以用bfs来做,但是数据毒瘤,如果每次询问都运行一次bfs,会有三个TLE。。可以将路途经过的点储存起来并且记录答案,如果询问的点已经被记录了答案,直接输出答案就行了,这里是用一个队列存经过的点。d数组用于标记是否能走到,注意每次bfs不需要更新d数组。代码如下:#include <iostream>#include <que...原创 2020-02-12 13:34:21 · 358 阅读 · 0 评论 -
POJ1321 棋盘问题【DFS】
题目链接:棋盘问题Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。Input输入含有多组测试数据。每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n ...原创 2020-02-11 20:16:52 · 155 阅读 · 0 评论 -
洛谷P1706 全排列问题【DFS】
题目链接:P1706 全排列问题#include <iostream>#include <cstdio>using namespace std;const int N = 10;int path[N], vis[N], n;void print() { for(int i = 1; i <= n; i++) printf("%5d", path...原创 2020-02-08 18:56:31 · 261 阅读 · 0 评论 -
洛谷P1506 拯救oibh总部【DFS】
题目链接:P1506 拯救oibh总部程序说明:深度优先搜索,和P1162填涂颜色差不多(没有区别)。大佬们的题解: P1506 拯救oibh总部 题解代码如下:#include <iostream>#define MAX 520 using namespace std;int a[MAX][MAX];int n, m, cnt = 0;int dx[] = {...原创 2020-01-19 07:50:03 · 515 阅读 · 0 评论 -
洛谷P1605 迷宫【DFS】
题目链接:P1605 迷宫程序说明:深度优先搜索,只开了一个数组,障碍为1,搜索过的地方设为1,注意递归返回上一层要清零。大佬们的题解写得相当不错…P1605 迷宫 题解代码如下:#include <iostream>#define MAX 6using namespace std;int n, m, t, cnt = 0;int sx, sy, fx, fy;i...原创 2020-01-18 23:26:41 · 322 阅读 · 0 评论 -
洛谷P1162 填涂颜色 【DFS】
题目链接:P1162 填涂颜色程序说明:从某一点开始搜索并标记,碰到墙或者已经被搜索过就返回。除了墙以外没有被标记过的点就是被墙围住的点,最后输出2即可。此题最坑的地方在于有可能开始搜索的第一个点就是墙,因此存图的数组下标从1开始而非0,目的是在图的外面加一圈0,这样就能解决图的第一个点就是墙的问题。注意递归结束的条件!代码如下:#include <iostream>#...原创 2020-01-18 10:02:48 · 288 阅读 · 0 评论 -
洛谷P1219 八皇后 【DFS】
题目链接:P1219 八皇后程序说明:深度优先搜索注意对角线的表示,c数组表示左下至右上的对角线(行列之和相等),d数组表示左上至右下的对角线(行列之差相等,加n是为了避免负数出现,即整体向右偏移n个单位)。代码如下:#include <iostream>using namespace std;//a数组表示行,b数组表示列//c数组表示左下至右上的对角线,d数组表...原创 2020-01-15 22:28:45 · 233 阅读 · 0 评论 -
POJ2386 Lake Counting【DFS】
Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 55916 Accepted: 27265DescriptionDue to recent rains, water has pooled in various places in Farmer John’s field, which is represented by a...原创 2020-01-15 15:57:29 · 267 阅读 · 0 评论 -
部分和问题【DFS】
题目来源:挑战程序设计竞赛p30。题目描述给定整数a1、a2、…an,判断是否可以从中选出若干数,使它们的和恰好为k。输入首先输入n和k,n表示数的个数,k表示数的和。接着一行n个数。(1<=n<=20,保证不超int范围)输出如果和恰好可以为k,输出“YES”,否则“NO”。样例输入4 131 2 4 7样例输出YES程序说明:深度优先搜索,每个数加或不...原创 2020-01-15 11:51:23 · 564 阅读 · 0 评论