
算法题解
文章平均质量分 81
从零开始的算法学习历程
Gettler•Main
我与我周旋久,宁作我!
展开
-
4310. 树的DFS 邻接链表深搜
4310. 树的DFS给定一棵 n 个节点的树。节点的编号为 1∼n,其中 1 号节点为根节点,每个节点的编号都大于其父节点的编号。现在,你需要回答 q 个询问。每个询问给定两个整数 ui,ki。我们希望你用 DFS(深度优先搜索)算法来遍历根节点为 ui 的子树。我们规定,当遍历(或回溯)到某一节点时,下一个遍历的目标应该是它的未经遍历的子节点中编号最小的那一个子节点。例如,上图实例中:如果遍历根节点为 1 号节点的子树,则子树内各节点的遍历顺序为 1,2,3,5,6,8,7,9,4。原创 2022-03-15 19:21:25 · 14470 阅读 · 0 评论 -
167.木棒 DFS剪枝与优化
167.木棒乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过 50 个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。输入格式输入包含多组数据,每组数据包括两行。第一行是一个不超过 64 的整数,表示砍断之后共有多少节木棍。第二行是截断以后,所得到的各节木棍的长度。在最后一组数据之后,是一个零。输出格式为每组数据,分别输出原始木棒原创 2022-03-15 19:21:34 · 1057 阅读 · 0 评论 -
满二叉树等长路径
满二叉树等长路径给定一个深度为 n 的满二叉树,其 2n+1−1 个顶点的编号为 1∼2n+1−1。树的根节点为 1 号节点,除根节点外,第 i 号节点的父节点为第 ⌊i2⌋ 号节点。例如,当 n=3 时,二叉树如下所示:树中每条边的长度已知,由此可以得到根节点到 2n 个叶节点的距离。为了使得根节点到每个叶节点的距离都相等,我们可以进行任意次增边操作。每次操作可以选择任意一条边,将其增加任意正整数长度。我们希望在达成目的的同时,所有边的总增加长度尽可能小。请你计算并输出总增加长度的最小可原创 2022-03-12 21:59:26 · 1137 阅读 · 0 评论 -
KMP字符串
字符串查找算法(简称为KMP算法)可在一个字符串S内查找一个词W的出现位置。一个词在不匹配时本身就包含足够的信息来确定下一个匹配可能的开始位置,此算法利用这一特性以避免重新检查先前配对的字符。给定一个模式串 S,以及一个模板串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。共一行,输出所有出现位置的起始下标(下标从 00 开始计数),整数之间用空格隔开。求出模板串 P 在模式串 S 中所有出现的位置的起始下标。第一行输入整数 N,表示字符串 P 的长度。第三行输入整数 M,表示字符串 S 的长度。原创 2022-03-12 21:59:48 · 500 阅读 · 0 评论 -
堆排序 数组模拟堆
838. 堆排序输入一个长度为 n 的整数数列,从小到大输出前 m 小的数。输入格式第一行包含整数 n 和 m。第二行包含 n 个整数,表示整数数列。输出格式共一行,包含 m 个整数,表示整数数列中前 m 小的数。数据范围1≤m≤n≤105,1≤数列中元素≤109输入样例:5 34 5 1 3 2输出样例:1 2 3思路:只需down函数即可完成代码:#include<iostream>using namespace std;const int N原创 2022-03-01 09:52:20 · 136 阅读 · 0 评论 -
841. 字符串哈希 哈希表
841. 字符串哈希给定一个长度为 n 的字符串,再给定 m 个询问,每个询问包含四个整数 l1,r1,l2,r2,请你判断 [l1,r1] 和 [l2,r2] 这两个区间所包含的字符串子串是否完全相同。字符串中只包含大小写英文字母和数字。输入格式第一行包含整数 n 和 m,表示字符串长度和询问次数。第二行包含一个长度为 n 的字符串,字符串中只包含大小写英文字母和数字。接下来 m 行,每行包含四个整数 l1,r1,l2,r2,表示一次询问所涉及的两个区间。注意,字符串的位置从 1 开始编号。原创 2022-03-01 09:52:29 · 1140 阅读 · 0 评论 -
传纸条 动态规划(数字三角形模型)
275.传纸条小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个 m 行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的是,他们可以通过传纸条来进行交流。纸条要经由许多同学传到对方手里,小渊坐在矩阵的左上角,坐标 (1,1),小轩坐在矩阵的右下角,坐标 (m,n)。从小渊传到小轩的纸条只可以向下或者向右传递,从小轩传给小渊的纸条只可以向上或者向左传递。在活动进行中,小渊希望给小轩传递一张纸条,同时希望小轩给原创 2022-02-25 17:15:11 · 132 阅读 · 0 评论 -
字符串归类 并查集
4304. 字符串归类给定 n 个由小写字母构成的字符串。现在,请你对它们进行归类。对于两个字符串 a 和 b:如果至少存在一个字母在 a 和 b 中同时出现,则 a 和 b 属于同一类字符串。如果字符串 c 既与字符串 a 同类,又与字符串 b 同类,则 a 和 b 属于同一类字符串。请问,最终所有字符串被划分为多少类。输入格式第一行包含整数 n。接下来 n 行,每行包含一个仅由小写字母构成的字符串。注意,输入字符串可能相同。输出格式一个整数,表示最终所有字符串被划分为的类的数原创 2022-02-25 17:15:41 · 1485 阅读 · 0 评论 -
分成互质组 DFS
1118. 分成互质组给定 n 个正整数,将它们分组,使得每组中任意两个数互质。至少要分成多少个组?输入格式第一行是一个正整数 n。第二行是 n 个不大于10000的正整数。输出格式一个正整数,即最少需要的组数。数据范围1≤n≤10输入样例:614 20 33 117 143 175输出样例:3思路:利用最大公因数判断互质,然后对当前组序号,组内元素数量,搜索过的总个数和当前组搜索的元素序号进行搜索。代码:#include<iostream>using原创 2022-02-25 17:15:32 · 202 阅读 · 0 评论 -
字串变换 双向广搜
双向广搜同时从起点状态和终点状态开始广搜,从而提高搜索效率190. 字串变换已知有两个字串 AA, BB 及一组字串变换的规则(至多 66 个规则):A1→B1A1→B1A2→B2A2→B2…规则的含义为:在 AA 中的子串 A1A1 可以变换为 B1B1、A2A2 可以变换为 B2…B2…。例如:AA=abcd BB=xyz变换规则为:abc` →→ `xu` `ud` →→ `y` `y` →→ `yz则此时,AA 可以经过一系列的变换变为 BB,其变换的过程为:abcd` →原创 2022-02-12 10:39:36 · 1388 阅读 · 0 评论 -
电路维修 双端队列广搜
双端队列广搜是一种类Dijkstra算法,主要解决图中边的权值只有0或者1的最短路问题。操作:每次从队头取出元素,并进行拓展其他元素时1、若拓展某一元素的边权是0,则将该元素插入到队头2、若拓展某一元素的边权是1,则将该元素插入到队尾175. 电路维修达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障,导致无法启动。电路板的整体结构是一个 RR 行 CC 列的网格(R,C≤500R,原创 2022-02-11 22:51:43 · 473 阅读 · 0 评论 -
数字三角形 动态规划
对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。,问题不大,找规律可以发现只有最底行中间的一个(或两个)位置满足条件。此外,向左下走的次数与向右下走的次数相差不能超过 1。输入的第一行包含一个整数 NN,表示三角形的行数。数字三角形上的数都是 0 至 100 之间的整数。从三角形的顶部到底部有很多条不同的路径。下面的 N 行给出数字三角形。上图给出了一个数字三角形。输出一个整数,表示答案。原创 2022-01-23 13:40:08 · 134 阅读 · 0 评论 -
K 倍区间 前缀和
K 倍区间题目描述给定一个长度为 N 的数列,A1, A2,⋯AN,如果其中一段连续的子序列 Ai , Ai+1 , … Aj ( i ≤ j ) 之和是 K 的倍数,我们就称这个区间 [i, j] 是 K 倍区间。你能求出数列中总共有多少个 KK 倍区间吗?输入描述第一行包含两个整数 NN 和 KK( 1 \leq N,K \leq 10^51≤N,K≤105 )。以下 N 行每行包含一个整数 A_iA**i ( 1 \leq A_i \leq 10^51≤A**i≤105 )输出描述输出原创 2022-01-18 15:25:20 · 1067 阅读 · 0 评论 -
ccf csp 简单总结
灰度直方图 问题描述 试题编号:202104-1 试题名称:灰度直方图 时间限制:1.0s 内存限制:512.0MB 问题描述:问题描述一幅长宽分别为 n 个像素和 m 个像素的灰度图像可以表示为一个 n×m 大小的矩阵 A。其中每个元素 Aij(0≤i<n、0≤j<m)是一个 [0,L) 范围内的整数,表示对应位置像素的灰度值。具体来说,一个 8 比特的灰度图像中每个像素的灰度范围是 [0,128)。一副灰度图像的灰度统计直方图(以下简称“直方图”)可以表示为一个长度原创 2021-09-16 18:04:36 · 978 阅读 · 0 评论 -
8.17 第九场 Unfair contest
8.17 第九场 Unfair contestTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 2049 Accepted Submission(s): 254Problem DescriptionI’m going to give my scores fairly. It’s just that some contestant deserv原创 2021-08-29 22:12:01 · 150 阅读 · 0 评论 -
8.12 第八场 GCD Game
8.12 第八场 GCD GameTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 3640 Accepted Submission(s): 730Problem DescriptionAlice and Bob are playing a game.They take turns to operate. There are n numbe原创 2021-08-29 22:11:24 · 153 阅读 · 0 评论 -
8.10 第七场 Fall with Trees
8.10 第七场 Fall with TreesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 2600 Accepted Submission(s): 618Problem DescriptionFall wants to draw a perfect binary tree.We first stipulate that all no原创 2021-08-29 22:10:27 · 210 阅读 · 0 评论 -
8.10 第七场 Smzzl with Greedy Snake
8.10 第七场 Smzzl with Greedy SnakeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 920 Accepted Submission(s): 527Problem DescriptionSmzzl is going to make an AI for Greedy Snake. The game goes on x原创 2021-08-29 22:09:17 · 224 阅读 · 0 评论 -
8.10 第七场 Smzzl with Tropical Taste
8.10 第七场 Smzzl with Tropical TasteTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1683 Accepted Submission(s): 898Problem DescriptionA boy, whose ID is smzzl, loves drinking Black Ice Tea(BIT), e原创 2021-08-29 22:08:09 · 1219 阅读 · 0 评论 -
# 8.5 第六场 Yes, Prime Minister
8.5 第六场 Yes, Prime MinisterTime Limit: 10000/10000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 926 Accepted Submission(s): 335Problem DescriptionMr. Hacker’s Department of Administrative Affairs (DAA) has infinite原创 2021-08-29 22:07:29 · 217 阅读 · 0 评论 -
8.3 第五场 Banzhuan
8.3 第五场 BanzhuanTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 3324 Accepted Submission(s): 664Problem DescriptionGiven a three-dimensional space of [1,n]×[1,n]×[1,n]. You’re required to place s原创 2021-08-29 22:06:50 · 231 阅读 · 0 评论 -
8.3 第五场 Cute Tree
Cute Tree*Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 1349 Accepted Submission(s): 876*Problem DescriptionGiven the pseudo-code of a function Build−Tree(A,id,L,R):where A is given in input,原创 2021-08-29 22:05:44 · 271 阅读 · 0 评论 -
8.3 第五场 VC Is All You Need
8.3 第五场 VC Is All You NeedTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 2033 Accepted Submission(s): 845Problem Description[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PvZv6e2u-1630245612361)(F:\good原创 2021-08-29 22:00:39 · 137 阅读 · 0 评论 -
7.27 第三场 Photoshop Layers
Photoshop LayersTime Limit: 3000/3000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 1264 Accepted Submission(s): 475Problem DescriptionPixels in a digital picture can be represented with three integers (R,G,B) in th原创 2021-08-29 21:59:34 · 181 阅读 · 0 评论 -
搜索 学习笔记
深度优先搜索标记状态843. n-皇后问题n−皇后问题是指将 n个皇后放在 n×n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。现在给定整数 n,请你输出所有的满足条件的棋子摆法。输入格式:共一行,包含整数 n。输出格式:每个解决方案占 n 行,每行输出一个长度为 n 的字符串,用来表示完整的棋盘状态。其中 . 表示某一个位置的方格状态为空,Q 表示某一个位置的方格上摆着皇后。每个方案输出完成后,输出一个空行。注意:行末不能有多余空格原创 2021-08-12 11:28:50 · 1071 阅读 · 0 评论 -
7.29 第四场 Calculus
CalculusTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 398 Accepted Submission(s): 214Problem DescriptionThis summer, ZXyang became so tired when doing the problems of Multi-University contests.原创 2021-08-02 22:58:33 · 179 阅读 · 0 评论 -
7.29 第四场 License Plate Recognition
License Plate RecognitionTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 332 Accepted Submission(s): 175Problem DescriptionLittle Rabbit is a college student who is studying Communication Enginee原创 2021-08-02 22:57:29 · 391 阅读 · 0 评论 -
7.20 第一场 KD-Graph
KD-GraphTime Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2504 Accepted Submission(s): 699Problem DescriptionLet’s call a weighted connected undirected graph of n vertices and m edges KD-Graph, if th原创 2021-07-25 12:41:10 · 181 阅读 · 0 评论 -
7.22 第二场 I love 114514
I love 114514Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 247 Accepted Submission(s): 195Problem DescriptionMr.I loves 114514 very much.Now Mr.I has a string, if “114514” is a substring of this原创 2021-07-23 21:04:25 · 281 阅读 · 0 评论 -
7.22 第二场 I love string
I love stringTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 290 Accepted Submission(s): 166Problem DescriptionMr X likes to play string games.Mr X has an operation sequence. This operation sequ原创 2021-07-23 21:03:34 · 220 阅读 · 0 评论 -
7.22 第二场 I love cube
7.22 第二场 I love cubeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 513 Accepted Submission(s): 206Problem DescriptionGive you a cube with a side length of n-1. Find the number of equilateral tri原创 2021-07-23 21:02:43 · 229 阅读 · 0 评论 -
7.20 第一场 Maximal submatrix
Maximal submatrixTime Limit: 8000/4000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 276 Accepted Submission(s): 76Problem DescriptionGiven a matrix of n rows and m columns,find the largest area submatrix which is non原创 2021-07-20 21:31:14 · 344 阅读 · 0 评论 -
7.20 第一场 Minimum spanning tree
Minimum spanning treeTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/Others)Total Submission(s): 81 Accepted Submission(s): 43Problem DescriptionGiven n-1 points, numbered from 2 to n, the edge weight between the two points原创 2021-07-20 21:29:37 · 247 阅读 · 0 评论 -
7.20 第一场 Mod, Or and Everything
Mod, Or and EverythingTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 98 Accepted Submission(s): 62Problem DescriptionYou are given an integer n.You are required to calculate (n mod 1) or (n mod原创 2021-07-20 21:28:41 · 369 阅读 · 0 评论 -
7.18 热身赛 Game
GameTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 102 Accepted Submission(s): 40Problem DescriptionAlice and Bob are playing a game. They take turns and Alice moves first. There is a set of positi原创 2021-07-19 18:35:36 · 190 阅读 · 1 评论 -
7.18 热身赛 A+B Problem
A+B ProblemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 83 Accepted Submission(s): 62Problem DescriptionHZ has a special calculator, in which all the integers are 11-bit signed integers. The rang原创 2021-07-19 18:20:32 · 209 阅读 · 0 评论 -
7.18 热身赛 Substring
SubstringTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 999 Accepted Submission(s): 168Problem DescriptionYou are given a string S[1…N] containing only lowercase letters. Now you need to find the原创 2021-07-19 16:43:42 · 202 阅读 · 0 评论 -
C++实现 高精度 加减乘除
一般这类数字我们统称为高精度数,高精度算法是用计算机对于超大数据的一种模拟加,减,乘,除,乘方,阶乘,开方等运算。对于非常庞大的数字无法在计算机中正常存储,于是,将这个数字拆开,拆成一位一位的,或者是四位四位的存储到一个数组中, 用一个数组去表示一个数字,这样这个数字就被称为是高精度数。高精度算法就是能处理高精度数各种运算的算法,但又因其特殊性,故从普通数的算法中分离,自成一家。给定两个非负整数(不含前导 0) A,B,请你计算 A/B 的商和余数。共两行,第一行包含整数 A,第二行包含整数 B。原创 2021-04-12 15:31:05 · 1773 阅读 · 1 评论 -
递推 费解的开关 AcWing
95.费解的开关你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字“1”表示一盏开着的灯,用数字“0”表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011再改变它正中间的灯后状态将变成:0原创 2021-02-04 11:50:28 · 158 阅读 · 0 评论 -
数据结构与算法 基础实验
数据结构与算法基础实验大合集实验一 线性表的创建、销毁、插入、删除、遍历等操作的实现:两个有序链表序列的合并一、 题目二、 解题思路三、 程序设计四、 程序详解及运行结果五、 问题及解决过程实验二 队列类的实现与测试 :银行业务队列简单模拟一、 题目二、 解题思路三、 程序设计四、 程序详解及运行结果五、 问题及解决过程实验三 栈与队列的应用 :迷宫寻路一、 题目二、 解题思路三、 程序设计四、 程序详解及运行结果五、 问题及解决过程实验四 树的存储结构 :树的遍历一、 题目二、 解题思路三、 程序设原创 2020-12-31 10:06:12 · 5189 阅读 · 37 评论