刷题记录
文章平均质量分 77
Die love 6-feet-under
这个作者很懒,什么都没留下…
展开
-
刷题记录[导航贴]
最近记录的最后一道题:Codeforces Round 929 (Div. 3) D. Turtle Tenacity: Continual Mods(数学,贪心)原创 2024-03-17 14:09:33 · 677 阅读 · 0 评论 -
Codeforces Round 920 (Div. 3) D. Very Different Array (贪心)
为了避免与哥哥的数组相似,瓦夏希望自己的数组与彼佳的数组尽可能不同。那么对于当前两个数组也可以用类似的方法做,在此题中,就是距离。对于每个测试用例,输出一个整数 - 可获得的最大总差值。他的弟弟 Vasya 很羡慕,决定自己也做一个。每个测试由多个测试用例组成。个整数并按一定的顺序排列,得到一个长度为。随后是测试用例的描述。每个测试用例的第一行包含两个整数。保证在一个测试中,所有测试用例中。帮助瓦夏找出他能得到的最大差值。每个测试用例的第二行包含。每个测试用例的第三行包含。差值最大的一个元素是。原创 2024-05-14 20:01:21 · 652 阅读 · 0 评论 -
Codeforces Round 925 (Div. 3) D. Divisible Pairs(数学)
括号里的值应该满足是y的倍数或者是0才能够使等式成立,但是这里括号里的式子是两项相减,所以是不可能到达y的,所以取不到y的倍数,那么就只有取0。波利卡普有两个最喜欢的整数 x 和 y (它们可以相等),他找到了一个长度为 n 的数组 a。,如果想要modx之后得到的得数是0,那么括号里的内容只有可能是x的倍数或者0。对于每个测试用例,输出一个整数,即数组 a 中的漂亮配对数。对于此类数学题,可以在给出的公式的基础上进行一些推导。–即数组的大小和波利卡普最喜欢的整数。题目要求时间2s,数据范围为2e9,原创 2024-05-14 15:06:41 · 472 阅读 · 0 评论 -
Polynomial Round 2022 C. Ice and Fire (构造)
当两个棋手在一个特定的环境中对战时,如果环境的类型是 0 ,那么在这个环境中温度值较低的棋手总是获胜;如果有 x 个玩家参与游戏,那么总共会有 x−1 场战斗,而 x−1 个环境的类型将是 s 的前 x−1 个字符。并且在题目给出的条件:可以任意选择比赛人员,的情况下,我们一定可以让所有的m+1到n都被取到。很容易想到的是:如果串全为1,那么一定是n获胜,如果串全为0,那么一定是1获胜。的选手数量,不管前面怎么取,就算把所有的最大的数全部输掉,最坏的情况也会有。对于后缀为0的串的结果也是同理。原创 2024-05-14 10:13:40 · 230 阅读 · 0 评论 -
Codeforces Round 843 (Div. 2) B. Gardener and the Array (构造)
所以这时候就去想:如果我们能够从C数组中抽离一个元素,然后将B序列变为抽离一个元素之后的C数组,那么这时候如果仍然满足。这时候就会有一个疑问,我们这种情况只是取得了一个长度为n的子序列和一个长度为n-1的子序列,序列更长,因为这时候二者的或运算的结果是完全相同的,如果我们让。的(A和B的元素完全一致,或运算之后的结果也完全一致)。的数位,其他的数也有,这样就不会影响或运算的结果了。,也就是说删掉的这个元素的二进制形式上的每一个出现。中的任何元素,也都可以保证结果是和。中所有元素的或运算的结果,而。原创 2024-05-13 20:19:27 · 635 阅读 · 0 评论 -
Codeforces Round 848 (Div. 2) B. The Forbidden Permutation(贪心)
给你一个长度为 n 的排列 p 、一个由 m 组成的数组a1a2am1≤ai≤n和一个整数 d 组成的数组。不同的整数a1a2am1≤ai≤n,以及整数 d。设posx是x在排列p中的索引。如果出现以下情况,那么数组a就不好。原创 2024-05-13 11:10:31 · 792 阅读 · 0 评论 -
SWERC 2022-2023 - Online Mirror H. Beppa and SwerChat (双指针)
我们凭借人类的思维去判断这里有两个元素的思路就是:发现了3移动到了1的前面,又因为2在3的前面,所以2和3一定都变动了。看到这道题会很自然的想到两种方法,一个是根据第一次看见的信息去推,另一个是根据第二次看见的信息去倒推。最近使用这个聊天群的成员将会在列表最上方,接下来较次使用聊天软件的成员将会在列表第二名,依次类推。那么对于两种方法都是去比较另一个序列里存在的和自己的公共子序列的长度,然后余下的就是顺序变化的。,在搜完整个a序列之后,b序列留下的还没有被找到的那些元素,就是变动过的元素。原创 2024-05-12 19:57:12 · 578 阅读 · 0 评论 -
Codeforces Round 134 (Div. 1) A. Ice Skating (并查集)
给出n个点的横纵坐标,两个点互通当且仅当两个点有相同的横坐标或纵坐标,问最少需要加几个点才能使得所有点都两两互通Input第一行一个整数n表示点数,之后n行每行两个整数x[ i ]和y[ i ]表示第i个点的横纵坐标(1<=n<=100,1<=x[ i ],y[ i ]<=1000)Output输出需要加的最少点数。原创 2024-05-11 19:07:41 · 726 阅读 · 0 评论 -
Codeforces Round 693 (Div. 3) C. Long Jumps(DP)
DP主要讲究由一个状态转化为另一个状态,如果你想以从前往后的角度思考,你就会发现,你如果想要搜出来所有的点能够得到的分数就必然得到巨大的时间复杂度,那么从另一个角度,以从后往前的角度思考。这样就会发现,在从后往前搜的时候,不管搜到哪个点,他需要转移过来的状态都已经被计算完了,这样就符合了DP。以最后一个点为起点,一定是没得走的,因为怎么走都会超出边界,所以最后一个点的值一定就是。一直往前搜,直到搜到了一个点满足。,那么这时候就可以状态转移为。在玩一个游戏,给定有。可以得出的最大得分。原创 2024-05-11 09:37:38 · 552 阅读 · 0 评论 -
Codeforces Round 217 (Div. 2) A. Rook, Bishop and King(BFS)
【题目描述】佩蒂亚正在学习国际象棋。他已经学会如何移动王、车和象。让我们提示你如何移动国象棋子。棋盘有64个棋格,呈8×8正方形。一个格子可以用rc来表示——r指行,c指列(虽然在经典棋局中用字母和数字一起表示)。每一个棋子占用一个棋格。佩蒂亚在想,从r1c1移动到r2c2所需的最少步数是多少?我们假设在棋盘上只有一枚棋子。帮他解决问题。【输入格式】输入包括四个整数r1c1r2c21<=r1c1r2。原创 2024-05-10 17:00:08 · 746 阅读 · 0 评论 -
Codeforces Round 456 (Div. 2) - B. New Year‘s Eve (位运算,Bitsmasks)
没有两颗糖果的口味是相同的。Ded Moroz 警告格里莎他还有更多的房子要去,所以格里莎可以从袋子里拿走 不超过 k 的糖果。帮助格里沙确定他能获得的最大 xor 和(最大 xor 和意味着最大的快乐!我们可以认为他应该吃最好吃的糖果 --但不是,节日的魔力颠覆了一切。重要的是美味的 xor 和,而不是普通的和!在k = 1的时候,我们只能够选择一个数,那怎么选才能最大?此处明确异或的性质,即二进制数位相同为0,不同为1。的异或和定义为其所有元素的异或。的,所以这两个数一定能够取到。原创 2024-05-07 09:13:24 · 343 阅读 · 0 评论 -
Hello 2019 - B. Petr and a Combination Lock (DP,DFS)
这让 Petr 有点困惑,因为他不确定哪些应该顺时针旋转,哪些应该逆时针旋转。由于有许多可能的旋转锁的方法,请帮助他找出是否至少存在一种方法,使所有 n 旋转后指针再次指向零。彼得打电话给他的汽车经销商,经销商指示他将锁的转轮准确旋转 n 次。i 次旋转应该是 ai 度,可以是顺时针,也可以是逆时针,在所有 n 次旋转之后,指针应该再次指向零。如果可以进行所有旋转,使指针在完成所有旋转后指向零点,则打印 “是”。这里存操作角度的时候从下标为1开始存,因为在一开始需要表示0步操作的时候在0°,即。原创 2024-05-07 08:26:58 · 1022 阅读 · 0 评论 -
Codeforces Round 320 (Div. 2) - A. Raising Bacteria - (位运算)
首先明确一点,如果你一个盒子里放入两个细菌,那么就相当于两个盒子里各放入一个细菌,第二天都会变成4个新的细菌,所以不必把中间过程中放入的那些细菌放在过程中考虑,只需要把那些细菌都当成独立的个体就可以了。每天早上,你可以往盒子里放入任意数量的细菌。每天晚上,盒子里的每个细菌都会分裂成两个细菌。也就是说现在我们相当于在不同的天数放置了多个盒子,盒子里面有不同的细菌数,我们要使得有一天所有盒子里的细菌数之和为x。,所以只要数x的二进制形式有多少个1,就说明了在整个过程中加入了多少细菌。您想在盒子里养一些细菌。原创 2024-05-06 19:51:25 · 409 阅读 · 0 评论 -
洛谷 P1031 [NOIP2002 提高组] 均分纸牌(贪心)
有N堆纸牌,编号分别为12N。每堆上有若干张,但纸牌总数必为N的倍数。可以在任一堆上取若干张纸牌,然后移动。移牌规则为:在编号为1堆上取的纸牌,只能移到编号为2的堆上;在编号为N的堆上取的纸牌,只能移到编号为N−1的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。例如N4时,4堆纸牌数分别为98176。移动3498131039111010110101010。原创 2024-04-29 16:48:27 · 369 阅读 · 0 评论 -
洛谷 P1028 [NOIP2001 普及组] 数的计算 (递推,数学)
给出正整数nn请你求出,一共有多少个合法的数列。两个合法数列ab不同当且仅当两数列长度不同或存在一个正整数i≤∣a∣,使得aibi。原创 2024-04-29 12:40:05 · 1022 阅读 · 0 评论 -
洛谷 P1012 [NOIP1998 提高组] 拼数 (排序,贪心)
设有n个正整数a1an,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数。原创 2024-04-28 09:52:19 · 881 阅读 · 0 评论 -
Codeforces Round 886 (Div. 4) F. We Were Both Children (模拟,思维,*1300)
现在思考一个问题,如果一个青蛙能够跳2格,那么它能够到达的格子会有2,4,6。肯定做不了,因为数据范围达到了2e7,所以需要思考出一种绝妙的方法来解决。在任何青蛙开始跳跃之前,斯拉夫和米哈伊可以在一个坐标上放置。如果不能直接枚举来找每个点能被几个青蛙走到,那么又应该如何做呢?但是,孩子们不能离开家太远,所以他们只能在第一个。之间的点)放置一个陷阱,孩子们不能在。陷阱,以便捕捉所有经过相应坐标的青蛙。,即他的步数的倍数,那么我们只需要。点放置陷阱,因为他们害怕青蛙。,加上相应的数值即可。原创 2024-04-26 19:32:59 · 763 阅读 · 0 评论 -
[ABC333D] Erase Leaves (树,DFS)
给定一颗n个节点的无根树。每次你可以删除一个叶子节点(即度数为1的点),问最少多少次操作可以删除1节点。2≤n≤3×105。原创 2024-04-26 08:47:33 · 488 阅读 · 0 评论 -
洛谷 P1498 南蛮图腾 (DFS)
自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图腾,于是他找上了你的爷爷的爷爷的爷爷的爷爷……帮忙,作为一个好孙子的孙子的孙子的孙子……你能做到吗?原创 2024-04-25 11:04:46 · 773 阅读 · 0 评论 -
洛谷 B3618 寻找团伙 (DFS,状态压缩)
世界局势风云变幻,你想办一件大事。办事自然要有人参与,你能从n个人里面挑选一部分人共襄盛举。要办这件事,一共涉及k方面的能力,例如游说他人的能力、玩游戏的能力、睡觉的能力。每位人士都会具备某一些能力,例如机器猫就可能擅长睡觉、擅长玩游戏,而不擅长游说他人。你的计划很宏伟,因此你希望团队拥有很全面的能力。不幸的是,如果团队中有偶数个人拥有同一类能力,那么他们就会分成两派,争执不下,导致整个团队丧失这方面的能力。相应地,如果这项能力只有奇数个人拥有,那么他们总能形成一个多数派,帮团队去做这方面的工作。原创 2024-04-24 20:03:59 · 597 阅读 · 0 评论 -
Codeforces Round 254 (Div. 2) A. DZY Loves Chessboard (模拟,思维,DFS)
本题的定位较为奇怪,总的来看DFS不像是正解。原创 2024-04-23 17:10:18 · 532 阅读 · 0 评论 -
洛谷 -P1007 独木桥(模拟,思维)
战争已经进入到紧要时间。你是运输小队长,正在率领运输部队向前线运送物资。运输任务像做题一样的无聊。你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们。士兵们十分愤怒,因为这座独木桥十分狭窄,只能容纳1个人通过。假如有2个人相向而行在桥上相遇,那么他们2个人将无法绕过对方,只能有1个人回头下桥,让另一个人先通过。但是,可以有多个人同时呆在同一个位置。原创 2024-04-22 21:01:41 · 643 阅读 · 0 评论 -
洛谷 - P1020 [NOIP1999 提高组] 导弹拦截 (Dilworth定理,贪心,子序列问题)
首先阐述Dilworth定理的具体应用,即原链最长长度 = 反链划分数最小值。其中对于子序列问题而言,上升子序列和不上升子序列(即下降相等)是互为反链,下降子序列和不下降子序列(即上升相等)是互为反链。那么根据这个定理,在同一个序列中,最长上升子序列的长度 = 不上升子序列的最小划分数,最长下降子序列的长度 = 不下降子序列的最小划分数。那么依据以上理论,就能够利用贪心的方法求解出这道题,在加上二分就能将时间复杂度控制在O(NlogN),一定能够过掉这道题。原创 2024-04-22 12:28:38 · 657 阅读 · 0 评论 -
PTA 团体程序设计天梯赛-练习集 L2-014 列车调度(set,贪心)
两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道。} 的顺序排队等待进入。如果要求它们必须按序号递减的顺序从出口离开,则至少需要多少条平行铁轨用于调度?这道题的意思是某一些列车进入到了中间过渡阶段铁轨的时候可以停在那里,然后等待调度。在一行中输出可以将输入的列车按序号递减的顺序调离所需要的最少的铁轨条数。就去找一个最接近的并且然当前车排到那辆车后面,如果没有就必须另开一条道。,下一行给出从1到N的整数序号的一个重排列。火车站的列车调度铁轨的结构如下图所示。原创 2024-04-19 16:14:34 · 178 阅读 · 0 评论 -
PTA 团体程序设计天梯赛-练习集 - L2-007 家庭房产 (并查集,结构体)
思路比较简单,首先这个关系树就要用并查集来维护,其次对于题目要求的排序方式就只有定义结构的的解决方法(只有这样才能保持所有数值捆绑在一起)。其中编号是每个人独有的一个4位数的编号;父和母分别是该编号对应的这个人的父母的编号(如果已经过世,则显示。首先在第一行输出家庭个数(所有有亲属关系的人都属于同一个家庭)。家庭信息首先按人均面积降序输出,若有并列,则按成员编号的升序输出。给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。对于测试点2,3,4错误的:记得有。原创 2024-04-19 11:14:07 · 452 阅读 · 0 评论 -
Codeforces Round 903 (Div. 3) D. Divide and Equalize(数学)
您可以输出任何情况下的答案(例如,字符串 “yEs”、“yes”、"Yes "和 "YES "都将被识别为肯定答案)。仔细分析两个操作可能带来的后果,如果一个数除以x之后另一个数又乘了x,那么就会导致整个数组的乘积永远不会改变。,想要实现所有数的质因数都相同,就必须进行质因数的转移,如果到最后能够转移出来,就必须满足。确定是否有可能通过一定次数(可能为零)的运算使数组中的所有元素都相同。即在这种情况下,其实是某个数的因数转移给了另一个数。,只有都是n的倍数才能够转移之后平均下来。然后是每个测试用例的描述。原创 2024-04-16 09:28:19 · 514 阅读 · 0 评论 -
Codeforces Round 171 (Div. 2) B. Books (双指针)
对于这道题而言,有序性指的是Valera在读书的时候必须从当前选择的书往后读,直到不能够再读或者到头了。瓦莱拉会把每本书读完,也就是说,如果他没有足够的空闲时间读完这本书,他就不会开始读这本书。双指针算法使用的条件是有序性,这里的有序不是数组元素的从小到大,而是操作时的有序性。的书,从这本书开始逐本阅读。当瓦莱拉有空闲时间时,他会去图书馆看书。本书,并为每本书估算了阅读所需的时间。之间的整数为这些书编号。的那本书所需要的时间,然后再。为读这些书的总时间,在。的书,然后阅读编号为。的书,接着阅读编号为。原创 2024-04-15 18:17:58 · 518 阅读 · 0 评论 -
Codeforces Round 899 (Div. 2) B. Sets and Union (模拟,数学)
简化一下就是:找到给出的集合,找出他们中的某个并集,使得这个并集的长度是小于所有集合的并集的长度的条件下是长度最大的一个并集。这些数,然后再去枚举集合,如果某个集合中不含有这个数就合并上这个集合,并维护一个最终并集的长度的最大值。如果一个集合中包含了一些数,那么只需要减少其中一个数,就可以得到一个长度减。的联集定义为至少存在于其中一个集合中的元素的集合。的并集(如果存在的话),这个并集就满足了是最优解。的并集,根据给出的数据范围,我们只需要循环。中一个也不选,那么它们的联合就是空集。原创 2024-04-15 15:52:47 · 506 阅读 · 0 评论 -
华南理工大学程序设计竞赛 - A-KNN算法 (二分)
如果我们有一个数组a[],并且我们想要找到给定任意一个xxx值的第kkk近的数,那么我们可以定义一个按照数组中每个元素按照其与xxx的差值的大小进行排序的办法。此方法主要适用于sort()函数。原创 2024-04-15 12:32:38 · 828 阅读 · 0 评论 -
Codeforces Round 295 (Div. 2) B. Two Buttons (BFS)
这是一类问题:多个操作方式对数操作,可以使用DFS或者BFS,当然BFS更为安全,并且具有最短路的特性,所以如果不需要回溯的话就尽量使用BFS。对于此题,只需要搜遍所有操作就可以了,但是要加上一个限制条件,即被操作后的数不能够超过1e5,如果不加限制的话就可能会导致永远搜不完了。装置的前面板上有一个红色按钮、一个蓝色按钮和一个显示正整数的显示屏。点击红色按钮后,设备将显示的数字乘以。如果某个时候数字不再是正数,设备就会崩溃。显示屏可以显示任意大的数字。点击蓝色按钮后,设备从显示屏上的数字中减去。原创 2024-04-14 12:04:19 · 869 阅读 · 0 评论 -
Codeforces Round 266 (Div. 2) - A. Cheap Travel(模拟)
安最近开始乘坐地铁上下班。我们知道,地铁票的单程票价为。判断来判断去,肯定是很难得到最终答案,所以我们可以。乘车券涵盖的乘车次数、一张乘车券的价格和一张。请帮助安,告诉她最少要花多少钱才能乘坐。打印一个整数 - 安需要花费的最低卢布金额。,因为如果这种情况成立的话,就说明全选。次的特价票(可以多次购买)。安计算了一下,她需要乘坐地铁。此外,安安还发现她可以购买。单行包含四个空格分隔的整数。情况很多,如果你想要用一堆。–安计划的乘车次数、原创 2024-04-14 09:46:10 · 513 阅读 · 0 评论 -
洛谷 - P1187 3D模型
一座城市建立在规则的n×m网格上,并且网格均由1×1正方形构成。在每个网格上都可以有一个建筑,建筑由若干个1×1×1的立方体搭建而成(也就是所有建筑的底部都在同一平面上的)。几个典型的城市模型如下图所示:现在给出每个网格上建筑的高度,即每个网格上建筑由多少个立方体搭建而成,要求这个建筑模型的表面积是多少。原创 2024-04-12 07:27:11 · 773 阅读 · 0 评论 -
Codeforces Round 142 (Div. 2) - B. T-primes (数论)
首先我们知道,一个质数的因数只有1和他自己,那么一个质数的平方数的因数,就只有1和他自己还有他开平方的数。知道了这一点就可以直接开始写出求约数个数的函数,只要按照是质数并且是一个平方数判断就可以。给你一个由 n 个正整数组成的数组。请判断其中每个整数是否为 Т-prime。我们知道,质数是具有两个不同正除数的正整数。行应包含"是"(不带引号);,显示数组中有多少个数字。虽然标签有模拟,但是这是纯纯的数论题。行应包含"否"(不带引号)。是 Т-prime,则第。恰好有三个不同的正除数。第一行包含一个正整数。原创 2024-04-11 21:39:41 · 499 阅读 · 0 评论 -
Codeforces Round 617 (Div. 3) - C. Yet Another Walking Robot(模拟)
这题同样给出了一个新奇且重要的思想,我们不必计算向左右或者上下移动的次数是否相同,可以直接记录坐标,如果当前更新的坐标是之前出现过的,就直接取到之前的坐标为启始,当前坐标为末尾,直接删掉中间的这一段串就可以。例如,"LURLLR "的子串有 “LU”、“LR”、“LURLLR”、“URL”,但没有 "RR "和 “UL”。非空***子串,以优化机器人的路径,使其路径的终点不变。此外,优化后的目标路径也有可能是空字符串(即删除的子串是整个字符串。个字符 “L”、“R”、“U”、"D "组成,即机器人的路径。原创 2024-04-10 23:24:27 · 548 阅读 · 0 评论 -
Codeforces Round 936 (Div. 2) - A. Median of an Array (数学)
对于每个测试用例,输出一个整数 - 增加数组中位数所需的最少操作数。,因为只有这样才能够满足数组的有序顺序不会改变。了之后他们也是大于等于中位数,不会影响整体顺序。你的任务是找出增加数组中位数所需的最少操作次数。) - 测试用例的数量。然后是测试用例的描述。下标处的数就被认为是中位数,暂时使这个下标为。,如果想要改变中位数的数值,那么就要使得。不用管大于中位数的数是因为,就算中位数加。每个测试用例的第一行包含一个整数。是按非递减顺序排序的数组。每个测试用例的第二行包含。不一定包含不同的数。原创 2024-04-09 20:50:31 · 559 阅读 · 0 评论 -
Codeforces Round 611 (Div. 3) - B. Candies Division (模拟,数学)
首先明确,我们能给出去的不同的物品数量最多不能相差1,也就是说你最多也就只能给出两种数量。故我们就可以先把能够平均分出去的糖果全部分出去,然后再去考虑能多送出去多少个。为每个测试用例打印答案–圣诞老人能给孩子们的糖果的最大数量,这样他就会。圣诞老人不能把一颗糖果分成几份,但他可以不用一些糖果。你的任务是找出圣诞老人能给孩子们的糖果的最大数量,这样他就会。表示的是能够平均分给每个人的糖果数量,而。他想把尽可能多的糖果分给所有的。是平均分后所有人被分到的糖果数量的和。颗糖果,得到最多糖果的孩子有。原创 2024-04-09 08:31:25 · 709 阅读 · 0 评论 -
AcWing 2069. 网络分析 (并查集,树上差分)
小明有时会测试当时的网络,他会在某个节点发送一条信息,信息会发送到每个相邻的节点,之后这些节点又会转发到自己相邻的节点,直到所有直接或间接相邻的节点都收到了信息。在增加信息量的操作时,我们先给那些建立的根节点加上,然后再最后遍历所有根节点,让每棵树的值通过根节点一步步传递到叶节点,最终打成连通增加信息量的效果。可以在合并集合的过程中同时建立起多颗树,这时候就可以保证信息量的加法仅加在集合中,并且能过查询单点。给出小明连接和测试的过程,请计算出每个节点存储信息的大小。台电脑,称为节点,用于收发和存储数据。原创 2024-04-08 16:06:52 · 1051 阅读 · 0 评论 -
14届蓝桥杯 C/C++ B组 T7 子串简写 (字符串)
存好下标之后,可以先定位好启始的字符,然后去搜结尾字符符合长度k并且最靠近启始字符的下标,找到之后可以直接取到这个下标之后的所有下标,因为都满足了长度大于等于k。采用存储目标字符下标的方法,此题的想法比较新奇,故予以记录。原创 2024-04-07 19:49:48 · 186 阅读 · 0 评论 -
14届蓝桥杯省赛 C/C++ B组 T8 整数删除(双向链表,堆)
同时需要注意,在删除元素之后,我们又对两个元素进行了值的增加,所以这时候堆里对应的值和元素真实对应的值是不同的,则这时候取出来的最小值对应的下标不一定就是最小值了,如果我们扫到了真实值和堆中值不同的元素,就要重新把改变后的元素压入堆,这样才能保证完全正确。所以定义一个pair类型优先队列,每次取出堆顶进行删除,并且同时让删除元素的左右元素加上其值。瞬间定位一个数的左边或者右边,需要用到双向链表。在过程中不断维护最小值,需要用到堆。原创 2024-04-07 19:04:42 · 158 阅读 · 0 评论 -
14届蓝桥杯省赛 C/C++ B组 T4 飞机降落 (DFS)
如果一个飞机的到达时刻加上盘旋时间能够超过或者等于上一架飞机降落后的时间,那么就可以降落。当作下一层的时间,否则的话,把上一个飞机降落的时间加上当前飞机降落的时间当做下一层的时间。对于此题,我们将降落的飞机的个数和时间轴作为DFS的形参,这样可以节省手动回溯的过程。之后要再进行判断,如果这个飞机的到达时间是超过了上一架飞机降落后的时间的,那么就直接把。并且在DFS的过程中我们要加入一些贪心策略,否则直接爆搜有可能搜不出来答案。记录此题提醒自己,此类时间轴问题可以通过DFS解决。原创 2024-04-07 16:32:23 · 1685 阅读 · 1 评论