搜索
zhuifengmax
这个作者很懒,什么都没留下…
展开
-
LeetCode:二叉树层序遍历
给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。题解:这里我们给出递归的方式遍历/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {}原创 2022-01-22 10:05:03 · 529 阅读 · 0 评论 -
棋盘挑战
给定一个 N×N 的棋盘,请你在上面放置 N 个棋子,要求满足:每行每列都恰好有一个棋子每条对角线上都最多只能有一个棋子1 2 3 4 5 61 | | O | | | | |2 | | | | O | | |3 | | | | | | O |4 | O | | | | | |5 | | | O | | | |6 | | | | | O | |上图给原创 2021-01-22 10:06:20 · 350 阅读 · 0 评论 -
蓝桥杯:翻硬币
桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:oo*oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入格式两行等长的字符串,分别表示初始状态和要达到的目标状态。输出格式一个整数,表示最小操作步数数据范围输入字符串的长度均不超过100。数据原创 2021-01-18 10:23:46 · 140 阅读 · 0 评论 -
acwing滑雪
直接暴力搜索会超时#include <iostream>using namespace std;typedef long long ll;ll arr[305][305];int book[305][305];int m, n;int maxx = -1;int nx[] = { -1,0,1,0 };int ny[] = { 0,1,0,-1 };void dfs(int x, int y,int len){ if (len > maxx)maxx = l原创 2021-01-12 15:58:50 · 138 阅读 · 0 评论 -
小字辈
本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。简单并查集用广搜,可以利用vector动态数组输入格式:输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。输出格式:首先输出最小的辈分(老祖宗的辈分为 1,以下逐级递增)。然后在第二行按递增顺序输出辈分最小的成员的编号。编号间以原创 2020-10-21 08:37:17 · 152 阅读 · 0 评论 -
小字辈
本题给定一个庞大家族的家谱,要请你给出最小一辈的名单。简单并查集用广搜,可以利用vector动态数组输入格式:输入在第一行给出家族人口总数 N(不超过 100 000 的正整数) —— 简单起见,我们把家族成员从 1 到 N 编号。随后第二行给出 N 个编号,其中第 i 个编号对应第 i 位成员的父/母。家谱中辈分最高的老祖宗对应的父/母编号为 -1。一行中的数字间以空格分隔。输出格式:首先输出最小的辈分(老祖宗的辈分为 1,以下逐级递增)。然后在第二行按递增顺序输出辈分最小的成员的编号。编号间以原创 2020-10-21 08:18:08 · 85 阅读 · 0 评论 -
深入虎穴
题目描述著名的王牌间谍 007 需要执行一次任务,获取敌方的机密情报。已知情报藏在一个地下迷宫里,迷宫只有一个入口,里面有很多条通路,每条路通向一扇门。每一扇门背后或者是一个房间,或者又有很多条路,同样是每条路通向一扇门…… 他的手里有一张表格,是其他间谍帮他收集到的情报,他们记下了每扇门的编号,以及这扇门背后的每一条通路所到达的门的编号。007 发现不存在两条路通向同一扇门。内线告诉他,情报就藏在迷宫的最深处。但是这个迷宫太大了,他需要你的帮助 —— 请编程帮他找出距离入口最远的那扇门。输入样例1原创 2020-10-18 22:34:37 · 353 阅读 · 0 评论 -
跑图
题目描述跑图是RPG游戏中很烦躁的事情。玩家需要跑到距离他最近的传送点的位置。现在给你一张N \times MN×M的方格图,每个方格中数值00表示为平地,数值11表示为传送点,你的任务是输出一张N \times MN×M的矩阵,Matrix_{xy}Matrixxy 表示从(x,y)(x,y)到距离它最近的传送点的距离。 这里的距离是曼哈顿距离,|x1-x2|+|y1-y2|思路如果对于每一个点bfs判断其到传送点的最短距离,一定会超时,所以将所有传送点加入队列,将传送点周围的点离传送点的距原创 2020-09-23 08:40:08 · 272 阅读 · 0 评论 -
山峰山谷bfs
题目描述】给定一个 n×nn×n 的网格状地图,每个方格 (i,j)有一个高度 wij 。如果两个方格有公共顶点,则它们是相邻的。定义山峰和山谷如下:均由地图上的一个连通块组成;所有方格高度都相同;周围的方格(即不属于山峰或山谷但与山峰或山谷相邻的格子)高度均大于山谷的高度,或小于山峰的高度。求地图内山峰和山谷的数量。特别地,如果整个地图方格的高度均相同,则整个地图既是一个山谷,也是一个山峰。【输入】第一行一个整数n(2≤n≤1000)),表示地图的大小。接下来 n 行每行 n 个整数表示原创 2020-08-20 11:24:41 · 453 阅读 · 0 评论 -
魔板
题目在成功地发明了魔方之后,拉比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板:1 2 3 48 7 6 5我们知道魔板的每一个方格都有一种颜色。这8种颜色用前8个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列(1,2,3,4,5,6,7,8)来表示。这是基本状态。这里提供三种基本操作,分别用大写字母“A”,“B”,“C”来表示(可以通过这些操作改变魔板的状态)“A”:交原创 2020-08-19 08:31:44 · 357 阅读 · 0 评论 -
棋盘问题
题目描述在一个 4×4 的棋盘上有88 个黑棋和 88 个白棋,当且仅当两个格子有公共边,这两个格子上的棋是相邻的。移动棋子的规则是交换相邻两个棋子。给出一个初始棋盘和一个最终棋盘,请找出一个最短的移动序列使初始棋盘变为最终棋盘。输入前四行,每行 4 个数字(1 或者 0),描述了初始棋盘;接着是一个空行;第六到第九行,每行 4 个数字(1 或者0),描述了最终棋盘输出一行是一个整数 nn,表示最少的移动步数。输入样例111100001110001010100101原创 2020-08-14 21:41:21 · 937 阅读 · 0 评论 -
动态规划深度搜索数的划分
问题描述一个正整数可以划分为多个正整数的和,比如n=6时: 6;1+5;2+4;3+3;2+2+2;1+1+4;1+2+3;1+1+1+3;1+1+2+2;1+1+1+1+2;1+1+1+1+1+1 共有十一种划分方法。 给出一个正整数,问有多少种划分方法。输入格式一个正整数n输出格式一个正整数,表示划分方案数样例输入3样例输出3数据规模与约定n<=100思路正整数n可以看成n个小球,每一个小球代表数字一,观察可知划分即为将这个n个小球放入k的盒子里面,且每一个盒子不能为原创 2020-07-26 16:16:49 · 195 阅读 · 0 评论 -
满足条件的正整数序列
问题描述小明想知道,满足以下条件的正整数序列的数量:第一项为 n;第二项不超过 n;从第三项开始,每一项小于前两项的差的绝对值。请计算,对于给定的 n,有多少种满足条件的序列。输入格式 每一行包含一个整数n。输出格式 输出一个整数,表示答案。答案可能很大,请输出答案除以10000的余数。样例输入 4样例输出 7样例说明 以下是满足条件的序列: 4 1...原创 2020-03-23 08:49:09 · 771 阅读 · 0 评论 -
Oil Deposits
The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works with one large rectangular region of land at a time, and creates a grid that divides th...原创 2020-02-27 08:52:29 · 94 阅读 · 0 评论 -
迷宫问题输出路径
定义一个二维数组:int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从起点到终点的最短路线。Input m和n,表示一个m*n...原创 2020-02-27 08:47:11 · 386 阅读 · 0 评论 -
全排列
题目:输入一个整数,输出1—N种全排列input:3Sample Output1 2 31 3 22 1 32 3 13 1 23 2 1分析深度搜素:将n看做n个盒子,一次处理每一个盒子,规定每个盒子按照1-n的顺序填数字,#include<iostream>//深度搜索尝试所有情况using namespace std;int n;int ans ...原创 2020-02-27 08:45:16 · 462 阅读 · 0 评论 -
迷宫输出路径
定义一个二维数组:int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从起点到终点的最短路线。Input m和n,表示一个m*n...原创 2020-02-26 23:06:24 · 389 阅读 · 0 评论