蓝桥杯
OldLeft
这个作者很懒,什么都没留下…
展开
-
计蒜客:打水滴(BFS)
样例输入12 2 22 00 011 1样例输出1YES样例输入22 2 22 00 021 21 1样例输出2NO0 20 0代码:#include <stdio.h>#include <string.h>#include <iostream>#include <string>#include <math.h>#include <algorithm>#include &l..原创 2021-04-18 22:45:43 · 201 阅读 · 0 评论 -
计蒜客:吃糖的时间(BFS)
思路bfs 出最后一个拿到糖果的小朋友的时间,然后加上 m 就是答案了。(注意只有一个小朋友时,答案就是m)代码#include<bits/stdc++.h>using namespace std;vector<int> Adj[100005];bool vis[100005];int n,p,c,m;int layer;struct Node{ int x,l;};void bfs(int x){ queue<Node> q;..原创 2021-04-17 19:56:07 · 681 阅读 · 0 评论 -
蒜头君回家(BFS)
样例输入8 10P.####.#P#..#..#...#..#T##.#.#............##.#####..........#####...#####....S##样例输出21方法1bfs 的时候标记数组多开一维度表示是否已经取得了钥匙的状态。如果到达终点并且取得钥匙的状态被标记,bfs 结束。#include<bits/stdc++.h>using namespace std;int n,m,sx,sy,ex,ey;char mp[200..原创 2021-04-17 19:25:00 · 153 阅读 · 0 评论 -
计蒜客:三阶平面魔方(BFS)
思路:写一个函数来进行相应的12种操作(12种有:每一列的上移下移 每一行的左移右移)然后就是用map来判重,因为此时9位数的可能性太多了,用vis数组判重就容易爆栈#include<bits/stdc++.h>using namespace std;string s,res="123456789";map<string,bool> mp;struct Node{ string t; int step;};string oper(strin...原创 2021-04-17 17:23:03 · 310 阅读 · 0 评论 -
计蒜客:一维跳棋(BFS)
我的代码#include<bits/stdc++.h>using namespace std;int n;string s1,s2;vector<int> temp;struct Node{ string s; int ind;//空格位置 vector<int> vc;};void bfs(){ queue<Node> q; q.push({s1,n,temp}); while(!q.e...原创 2021-04-17 16:35:59 · 511 阅读 · 0 评论 -
计蒜客:乳草的侵占(BFS)
样例输入4 3 1 1......*..**.样例输出4题解一定注意 u,vu,v 的位置处理。这道题目想必你已经可以直接想到bfs搜索了吧。把整个图遍历一遍,顺便记录下步数就可以了。其他的就是和普通bfs差不太多。#include<bits/stdc++.h>using namespace std;int X,Y,mx,my;char mp[105][105];int ans;int dir[8][2]={{0,1},{1,1},{1,0},{0,...原创 2021-04-17 15:25:35 · 142 阅读 · 0 评论 -
计蒜客:密码锁(BFS)
现在一个紧急的任务是打开一个密码锁。密码由四位数字组成,每个数字从 1 到 9 进行编号。每次可以对任何一位数字加 1 或减 1。当将9加 1 时,数字将变为1,当1减 1 的时,数字将变为9。你也可以交换相邻数字,每一个行动记做一步。现在你的任务是使用最小的步骤来打开锁。注意:最左边的数字不与最右边的数字相邻。输入格式第一行输入四位数字,表示密码锁的初始状态。第二行输入四位数字,表示开锁的密码。输出格式输出一个整数,表示最小步骤。样例输入12342144样例输出2思路此类题原创 2021-04-17 14:46:25 · 938 阅读 · 0 评论 -
因数最多的数(DFS,质因数分解,剪枝)
蒜头君对一个数的因数个数产生了兴趣,他想知道在 1 到 n 的范围内,因数个数最多的数是多少。如果有多个这样的数,他想知道最小的那个。输入格式第一行一个整数 T,表示数据的组数。接下来 T 行,每行一个正整数 n。1≤T≤100,1≤n≤10e16输出格式一共输出 T 行,每行一个正整数表示最多因数个数的数。样例输入3101001000样例输出660840思路:代码:#include<bits/stdc++.h>using namespace st原创 2021-04-17 11:49:09 · 579 阅读 · 0 评论 -
计蒜客:置换的玩笑(DFS)
小蒜头又调皮了。这一次,姐姐的实验报告惨遭毒手。姐姐的实验报告上原本记录着从 1 到 n 的序列,任意两个数字间用空格间隔。但是“坑姐”的蒜头居然把数字间的空格都给删掉了,整个数字序列变成一个长度为 1 到 100 的且首部没有空格的数字串。现在姐姐已经怒了,蒜头找你写个程序快点把试验数据复原。输入格式输入文件有一行,为一个字符串——被蒜头搞乱的实验数据。字符串的长度在 1 到 100 之间。输出格式输出共一行,为姐姐的原始测试数据—— 1 到n 的输出。任意两个数据之间有一个空格。如果有原创 2021-04-17 00:51:03 · 180 阅读 · 0 评论 -
计蒜客:正方形(DFS)
相似题:三角形蒜头君手上有一些小木棍,它们长短不一,蒜头君想用这些木棍拼出一个正方形,并且每根木棍都要用到。 例如,蒜头君手上有长度为 1,2,3,3, 3 的 5 根木棍,他可以让长度为1,22 的木棍组成一条边,另外三根分别组成 3 条边,拼成一个边长为 3 的正方形。蒜头君希望你提前告诉他能不能拼出来,免得白费功夫。输入格式首先输入一个整数 n(4≤n≤20),表示木棍数量,接下来输入 n 根木棍的长度 pi (1≤pi≤10000)。输出格式如果蒜头君能拼出正方形,输出"Yes",否则输出原创 2021-04-16 23:04:22 · 696 阅读 · 1 评论 -
蒜头君的旅游计划(DFS)
马上就要放寒假了,蒜头君已经辛勤的工作一年了,打算和家人一起出去旅游放松放松。有经验的人一定知道,出去旅游前一定要有详细的旅行规划。蒜头君打算旅游 n 个城市,但并不是每条路线的花费都是一样的。蒜头君是一个勤俭节俭的人,他就在想怎么把所有的城市旅游一遍花费最小呢?(蒜头君不喜欢重复旅游同一个城市,也就是说已到达过的城市蒜头君是不会再次光临的)输入格式第一行输入一个整数 n (1≤n≤15),表示有 n 个城市。接下来有一个 n×n 的矩形,表示每两个城市之间的火车花费,每两个城市之间的花费不会超过 1原创 2021-04-16 22:11:34 · 703 阅读 · 0 评论 -
全排列(DFS和next_permutation解法)
从 n 个不同元素中任取m (m≤n) 个元素,按照一定的顺序排列起来,叫做从 n 个不同元素中取出 m 个元素的一个排列。当 m=n 时所有的排列情况叫全排列。今天这道题目很简单就是给你一个整数 n ,计算 [1,n] 所有数字的排列组合。输入格式第一行输入一个整数n(1≤n≤10).输出格式第一行输出一个全排列的方案总数 m。接下来按照字典序依次输出这 m 个排列。排列的字典的比较方法和字符串一样,比如两个排列 a,b,从第一个数开始,找到第一个不同的数的位置为i,然后比较 a[i] 和b原创 2021-04-16 21:55:07 · 190 阅读 · 0 评论 -
找数字(DFS)
给一个数 n,让你找出一个只由 0,1 组成的十进制数 m,要求这个正整数 m 可以被 n 整除。输入格式输入一个整数 n (1≤n<200)。输出格式对于输入整数 n 的每一个值,输出 m 的相应值,保证有一个数字长度小于 19 位的数字。如果有一个给定值 n 有多个解,其中任何一个都是可以接受的。本题答案不唯一,符合要求的答案均正确样例输入2样例输出10思路:在这里我们可以直接想到的就是枚举出所有的字符串,然后查看哪一个字符串是满足条件的。比如 1 10 11 …原创 2021-04-16 21:16:25 · 269 阅读 · 0 评论 -
DFS奇偶性剪枝
思路:代码:#include <iostream>using namespace std;const int N = 10;int n, m, T;char mat[N][N];bool vis[N][N];int dx[4]={0,0,-1,1};int dy[4]={1,-1,0,0};bool ok;void dfs(int x,int y,int t){ if(ok) return; if(t==T){ if(mat[x][y].原创 2021-04-16 20:58:34 · 77 阅读 · 0 评论 -
计蒜客:数独(DFS)
样例输入* 2 6 * * * * * ** * * 5 * 2 * * 4* * * 1 * * * * 7* 3 * * 2 * 1 8 ** * * 3 * 9 * * ** 5 4 * 1 * * 7 *5 * * * * 1 * * *6 * * 9 * 7 * * ** * * * * * 7 5 *样例输出1 2 6 7 3 4 5 9 83 7 8 5 9 2 6 1 44 9 5 1 6 8 2 3 77 3 9 4 2 5 1 8 68 6 1 3 ...原创 2021-04-16 18:08:48 · 519 阅读 · 0 评论 -
2n皇后问题
给定一个 n∗n 的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入 n 个黑皇后和 n 个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条斜线(包括正负斜线)上,任意的两个白皇后都不在同一行、同一列或同一条斜线(包括正负斜线)上。问总共有多少种放法?n 小于等于 8。输入格式输入的第一行为一个整数 n,表示棋盘的大小。接下来 n 行,每行 n 个 0 或 1 的整数,如果一个整数为 1,表示对应的位置可以放皇后,如果一个整数为 0,表示对应的位置不可以放皇后。输出格式输出一个整数,表示原创 2021-04-16 01:10:01 · 70 阅读 · 0 评论 -
修改数组(并查集)
给定一个长度为 N 的数组 A=[A1,A2,⋅⋅⋅AN],数组中有可能有重复出现的整数。现在小明要按以下方法将其修改为没有重复整数的数组。小明会依次修改 A2,A3,⋅⋅⋅,AN。当修改 Ai 时,小明会检查 Ai 是否在 A1∼Ai−1 中出现过。如果出现过,则小明会给 Ai 加上 1;如果新的 Ai 仍在之前出现过,小明会持续给 Ai 加 1,直到 Ai 没有在 A1∼Ai−1 中出现过。当 AN 也经过上述修改之后,显然 A 数组中就没有重复的整数了。现在给定初始的 A 数组,请你计算出原创 2021-04-16 00:09:36 · 208 阅读 · 0 评论 -
引爆炸弹(DFS)
样例输入5 50001000010010011000101000样例输出2题解遍历每一个炸弹,同时把它所在的行和列的炸弹不断递归引爆,并将该炸弹变为0代码#include<bits/stdc++.h>using namespace std;int n,m,ans;char mp[1005][1005];bool vis1[1005],vis2[1005];void dfs(int x,int y){ mp[x][y]='0'; if...原创 2021-04-15 21:20:08 · 313 阅读 · 0 评论 -
计蒜客:方程的解数
样例输入:31001 2-1 21 2样例输出104题解:采用暴力的思想,枚举每一个 x 所有可能的值, 然后进行判断是否计算结果为 0。注意预处理,否则会超时。#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,m,ans;int k[10],p[10];ll x[10][150];void dfs(int ind,ll s){ if(ind>n) ..原创 2021-04-15 20:57:21 · 72 阅读 · 0 评论 -
计蒜客:等边三角形(DFS)
蒜头君手上有一些小木棍,它们长短不一,蒜头君想用这些木棍拼出一个等边三角形,并且每根木棍都要用到。 例如,蒜头君手上有长度为 1,2,3,3 的4根木棍,他可以让长度为1,2 的木棍组成一条边,另外 2 跟分别组成 2 条边,拼成一个边长为 3 的等边三角形。蒜头君希望你提前告诉他能不能拼出来,免得白费功夫。输入格式首先输入一个整数 n(3≤n≤20),表示木棍数量,接下来输入 n 根木棍的长度 pi (1≤ pi ≤10000)。输出格式如果蒜头君能拼出等边三角形,输出"yes",否则输出"no"原创 2021-04-15 20:34:43 · 526 阅读 · 0 评论 -
蒜头君开公司(DFS全排列)
2020 年,蒜头君自己开了一家拥有 NN 个员工的大公司。每天,蒜头君都要分配 NN 项工作给他的员工,但是,由于能力的不同,每个人对处理相同工作所需要的时间有所差异。众所周知,蒜头君是一个非常重视效率的人,他想知道该如何分配工作,才能使得完成所有工作的时间总和最小(每个员工只可以被分配到一个工作)。但是我们也都知道,蒜头君不是一般的懒,所以蒜头君找到了你,请你拯救一下蒜头君吧!输入格式第一行输入一个整数 N,代表有 N 个员工,员工编号从 1 到 N(1≤N≤10)。接着输入一个N×N 的二维矩原创 2021-04-15 17:35:09 · 271 阅读 · 0 评论 -
王子救公主(DFS)
一天,蒜头君梦见自己当上了王子,但是不幸的是,自己的公主被可恶的巫婆抓走了。于是蒜头君动用全国的力量得知,自己的公主被巫婆抓进一个迷宫里面。由于全国只有蒜头君自己可以翻越迷宫外的城墙,蒜头君便自己一人走上的拯救自己公主的路途。碰巧的是巫婆出去了,迷宫也不大,蒜头君可以直接和公主对话,于是两个人便开始相互靠近。每一步移动只能朝着上下左右四个方向走一格,不能走进墙所在的位置。蒜头君救公主心切,一次必须沿着一个方向走两步(允许跨越迷宫中的墙);公主柔弱,一次只能走一步。问在这个迷宫中,蒜头君是否可以救出公主(蒜原创 2021-04-15 17:14:11 · 127 阅读 · 0 评论 -
计蒜客家谱(dfs求直系后代数)
家谱,又称族谱、宗谱等,是一种以表谱形式,记载一个家族的世系繁衍及重要人物事迹的书。皇帝的家谱称玉牒,如新朝玉牒、皇宋玉牒。它以记载父系家族世系、人物为中心,由正史中的帝王本纪及王侯列传、年表等演变而来。家谱是一种特殊的文献,就其内容而言,是中国五千年文明史中具有平民特色的文献,记载的是同宗共祖血缘集团世系人物和事迹等方面情况的历史图籍。家谱属珍贵的人文资料,对于历史学、民俗学、人口学、社会学和经济学的深入研究,均有其不可替代的独特功能。这一天蒜头君拿到了自己家的家谱,蒜头君便想知道,在自己家的家谱中,原创 2021-04-15 16:02:38 · 331 阅读 · 0 评论 -
计蒜客(踏青)(染色块问题的DFS和BFS解法)
蒜头君和他的朋友周末相约去召唤师峡谷踏青。他们发现召唤师峡谷的地图是由一块一块格子组成的,有的格子上是草丛,有的是空地。草丛通过上下左右 4 个方向扩展其他草丛形成一片草地,任何一片草地中的格子都是草丛,并且所有格子之间都能通过上下左右连通。如果用’#‘代表草丛,’.'代表空地,下面的峡谷中有 2 片草地。##....##处在同一个草地的 2 个人可以相互看到,空地看不到草地里面的人。他们发现有一个朋友不见了,现在需要分头去找,每个人负责一片草地,蒜头君想知道他们至少需要多少人。输入格式第一行原创 2021-04-15 15:19:08 · 168 阅读 · 0 评论 -
[蓝桥杯][2019年第十届真题]外卖店优先级
题目链接“饱了么”外卖系统中维护着 N 家外卖店,编号 1∼N。每家外卖店都有一个优先级,初始时 (0时刻) 优先级都为 0。每经过 1个时间单位,如果外卖店没有订单,则优先级会减少 1,最低减到 0;而如果外卖店有订单,则优先级不减反加,每有一单优先级加 2。如果某家外卖店某时刻优先级大于 5,则会被系统加入优先缓存中;如果优先级小于等于 3,则会被清除出优先缓存。给定 T时刻以内的 M 条订单信息,请你计算 T时刻时有多少外卖店在优先缓存中。输入格式第一行包含 3个整数 N,M,T。以下 M原创 2021-04-12 23:29:27 · 86 阅读 · 0 评论