【每日算法】基础算法——八数码(四十) 2021-01-22| 算法 | BFS 题目内容在一个3×3的网格中,1~8这8个数字和一个“x”恰好不重不漏地分布在这3×3的网格中。
例如:
1 2 3x 4 67 5 8在游戏过程中,可以把“x”与其上、下、左、右四个方向之一的数字交换(如果存在)。
我们的目的是通过交换,使得网格变为如下排列(称为正确排列):
1 2 34 5 6 ...
Read more 【每日算法】基础算法——走迷宫(三十九) 2021-01-20| 算法 | BFS 题目内容给定一个n*m的二维整数数组,用来表示一个迷宫,数组中只包含0或1,其中0表示可以走的路,1表示不可通过的墙壁。
最初,有一个人位于左上角(1, 1)处,已知该人每次可以向上、下、左、右任意一个方向移动一个位置。
请问,该人从左上角移动至右下角(n, m)处,至少需要移动多少次。
数据保证( ...
Read more 【每日算法】基础算法——n皇后问题(三十八) 2021-01-20| 算法 | DFS 题目内容n-皇后问题是指将 n 个皇后放在 n∗n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。现在给定整数n,请你输出所有的满足条件的棋子摆法。
输入格式共一行,包含整数n。
输出格式每个解决方案占n行,每行输出一个长度为n的字符串,用来表示完整的 ...
Read more 【每日算法】基础算法——排列数字(三十七) 2021-01-18| 算法 | DFS - 深度优先算法 题目内容给定一个整数n,将数字1~n排成一排,将会有很多种排列方法。
现在,请你按照字典序将所有的排列方法输出。
输入格式共一行,包含一个整数n。
输出格式按字典序输出所有排列方案,每个方案占一行。
数据范围1≤n≤7
输入样例3
输出样例1 2 31 3 22 1 32 3 13 1 23 2 1 ...
Read more 【每日算法】基础算法——字符串哈希(三十六) 2021-01-18| 算法 | 字符串前缀哈希法 题目内容给定一个长度为n的字符串,再给定m个询问,每个询问包含四个整数l1,r1,l2,r2,请你判断[l1,r1]和[l2,r2]这两个区间所包含的字符串子串是否完全相同。
字符串中只包含大小写英文字母和数字。
输入格式第一行包含整数n和m,表示字符串长度和询问次数。
第二行包含一个长度为n的字符 ...
Read more 【每日算法】基础算法——模拟散列表(三十五) 2021-01-16| 算法 | 哈希 题目内容维护一个集合,支持如下几种操作:
“I x”,插入一个数x;“Q x”,询问数x是否在集合中出现过;
现在要进行N次操作,对于每个询问操作输出对应的结果。
输入格式第一行包含整数N,表示操作数量。
接下来N行,每行包含一个操作指令,操作指令为”I x”,”Q x”中的一种。
输出格式对于每个 ...
Read more 【每日算法】基础算法——模拟堆(三十四) 2021-01-14| 算法 | 堆 题目内容维护一个集合,初始时集合为空,支持如下几种操作:
“I x”,插入一个数x;“PM”,输出当前集合中的最小值;“DM”,删除当前集合中的最小值(数据保证此时的最小值唯一);“D k”,删除第k个插入的数;“C k x”,修改第k个插入的数,将其变为x;现在要进行N次操作,对于所有第2个操作, ...
Read more 【每日算法】基础算法——堆排序(三十三) 2021-01-14| 算法 | 堆 题目内容输入一个长度为n的整数数列,从小到大输出前m小的数。
输入格式第一行包含整数n和m。
第二行包含n个整数,表示整数数列。
输出格式共一行,包含m个整数,表示整数数列中前m小的数。
数据范围1≤m≤n≤10^5 ,1≤数列中元素≤10^9
输入样例5 34 5 1 3 2
输出样例1 2 3
...
Read more 【每日算法】基础算法——食物链(三十二) 2021-01-13| 算法 | 并查集 题目内容动物王国中有三类动物A,B,C,这三类动物的食物链构成了有趣的环形。
A吃B, B吃C,C吃A。
现有N个动物,以1-N编号。
每个动物都是A,B,C中的一种,但是我们并不知道它到底是哪一种。
有人用两种说法对这N个动物所构成的食物链关系进行描述:
第一种说法是”1 X Y”,表示X和Y是同 ...
Read more 【每日算法】基础算法——连通块中点的数量(三十一) 2021-01-13| 算法 | 并查集 题目内容给定一个包含n个点(编号为1~n)的无向图,初始时图中没有边。
现在要进行m个操作,操作共有三种:
“C a b”,在点a和点b之间连一条边,a和b可能相等;“Q1 a b”,询问点a和点b是否在同一个连通块中,a和b可能相等;“Q2 a”,询问点a所在连通块中点的数量;
输入格式第一行输入 ...
Read more