自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 2023年第十四届省赛真题-技能升级,详细讲解思路:暴力以及AC

其中第 ii 个技能首次升级可以提升 AiAi​ 点攻击力, 以后每次升级增加的点数 都会减少 Bi。「Bi​Ai​​⌉ (上取整) 次之后, 再升级该技能将不会改变攻击力。看到等差数列,我们可以这样想,尽可能去使用等差数量的性质,我们可以通过一个查找算法,找到一个数字,满足他在所有的等差数列里面,大于这个数字的数量小于或者等于m,我们就可以把代码改成这样。现在小蓝可以总计升级 MM 次技能, 他可以任意选择升级的技能和次数。就是放进数组里面,每次都排序,取最大值,也是最费时间的,只能过百分之四十的例子。

2025-03-26 19:28:46 233

原创 2023年第十四届省赛真题-选数异或,详细讲解:暴力以及AC

给定一个长度为 nn 的数列 A1,A2,⋯,AnA1​,A2​,⋯,An​ 和一个非负整数 xx, 给定 mm 次查 询, 每次询问能否从某个区间 [l,r][l,r] 中选择两个数使得他们的异或等于 xx。然后枚举查询结果直接判断范围。接下来 mm 行,每行包含两个整数 li,rili​,ri​ 表示询问区间 [li,ri][li​,ri​]。第二行包含 nn 个整数 A1,A2,⋯,AnA1​,A2​,⋯,An​。这里[1,dp[i-1]]的范围知道,那么[1,dp[i]]的范围同样知道。

2025-03-25 12:03:42 238

原创 2023年第十四届省赛真题-子树的大小,详细讲解:暴力已经AC

给定一棵包含 nn个结点的完全 m 叉树,结点按从根到叶、从左到右的顺序依次编号。我们可以把问题转化为求一个树的子树,根据层数循环,下最右边的孩子节点在不在树里面,如果不在就去专门计算最后一层的数量。思路,我们可以枚举每一个子节点并入队,入队的时候判断他的角标是否在树的范围内,循环条件是队列非空,依次出队。接下来 T 行,每行包含三个整数 n,m,k,表示一组询问。输出 T 行,每行包含一个整数表示对应询问的答案。这里面的k是当前节点,m是完全m树。暴不暴力一定要开long long。

2025-03-22 16:51:00 227

原创 2023年第十四届省赛真题-公因数匹配,详细讲解以及分解质因数

这里稍微说一个分解质因数的算法,先传入一个数X,然后令i=2,进行质因数循环判断,如果取余运算等于0,那么这个i就是这个质因数,再写一个while循环让他一直分解,直到没有位置,最后如果大于一,那么他本身就是一个质数。我们可以写一个分解质因数的算法,并且定义一个map容器,前面存质因数,后面存数组的角标,然后用for循环保证数组角标是由小到大即可。还有这个auto的用法,如果auto后加&符号,我们可以修改遍历的对象,如果不加就不能修改。如果仍然存在多组 i,j请输出 i最小的所有方案中 j 最小的那组。

2025-03-21 15:32:17 234

原创 2023年第十四届省赛真题-异或和之差,详细讲解以及字典树

这道题有点难,我们可以这样想,他既然不允许我们重复,我们可以枚举一个数字,来分割这组数组,当这个分割线移动一次,求出左边区间的最大异或和 和 右边区间的最小异或和,求出左边区间的最小异或和 和 右边区间的最大异或和。)树的每一层就是这个数的第几位,每个节点有这个数的二进制版的第n位的数(0或者1),然后可以根据异或和的性质,相同为0,不同为1,来查询数里面内容,如果数里面的相同位置有相反的数,我们可以将它转化为十进制并累加。//s[i]就是每次入的值,sum是要找的值,因为要找最大的子区间异或和。

2025-03-17 23:31:58 685

原创 2023年第十四届省赛真题-子矩阵,详细讲解以及单调队列和滑动窗口的运用

7首先入队,然后入队4和3,当入队5的时候,发现5大于3,满足出队的条件,这时队列内的元素有7 4 ,再次比较,5大于4,满足条件,4出队,再次判断,发现7大于5,5就入队,然后取队头元素7,就找到了最大值。如果要找窗口内的最大值的话,最后一步就需要加一个判断,判断队头的元素是否在窗口内,如果不在,就出队(这里就需要用deque的原因),然后队列内存的是数组的角标,方便对数组进行判断。就是一个队列,范围一定队头为窗口左边,队尾为窗口右边,大小就是窗口的长度,进入队列一个元素就要出一个元素。

2025-03-11 19:25:12 925

原创 2023年第十四届省赛真题-填充

有一个长度为 n 的 01 串,其中有一些位置标记为?,这些位置上可以任意填充 00 或者 11,请问如何填充这些位置使得这个 01 串中出现互不重叠的 00 和 11 子串最多,输出子串个数。判断各种情况,当两个字符都相等,当第一个字符是问号,当第二个字符是问号,都不是得时候。如果在问号处填 0 ,则最多出现一个 00 和一个 11:111000。循环条件s.size()-1是因为只循环到倒数第二位。对于所有评测用例,1≤n≤106。输出一行包含一个整数表示答案。输入一行包含一个字符串。

2025-03-05 17:44:55 158

原创 2023年第十四届省赛真题-翻转

后面 2D2D 行每行包含一个 0101 串,每两行为一组数据,第 2i−12i−1 行为第 ii 组数据的 TiTi​,第 2i2i 行为第 ii 组数据的 SiSi​,SiSi​ 和 TiTi​ 长度均为 nini​。小蓝用黑白棋的 nn 个棋子排成了一行,他在脑海里想象出了一个长度为 nn 的 0101 串 TT,他发现如果把黑棋当做 11,白棋当做 00,这一行棋子也是一个长度为 nn 的 0101 串 SS。对于每组数据,输出一行包含一个整数,表示答案,如果答案不存在请输出 −1−1。

2025-03-05 16:21:55 257

原创 2023年第十四届省赛真题-三国游戏

如果结果大于等于0才对魏国有帮助,我们在对这个数组进行排序操作,定义个long long 得sum,进行累加操作,如果每次累加后sum》=0,则说明魏国获胜,cut这个计数器加加,以此类推,当sum出现小于等于0是,说明魏国不会再获胜,此时结束累加,cut值就是当魏国胜利得时候最大得事件数量。游戏有 nn 个可能会发生的事件,每个事件之间相互独立且最多只会发生一次,当第 ii 个事件发生时会分别让 X,Y,ZX,Y,Z 增加Ai,Bi,CiAi​,Bi​,Ci​。输入的第一行包含一个整数 nn。

2025-03-05 15:46:23 259

原创 第十四届蓝桥杯国赛C/C++C组F题【火车运输】详细题解以及动态DP问题的总结

dp[i][j]=max(不放,放)(前面可以加一些判断条件,如j>=w[i])也就是:为基础的公式,根据题意可以进行变化,意义也可以变换这里i一般指的物品的编号范围,j是背包剩余的容量,dp本身指的是背包的物品价值,当然也可以指的是物品的重量。dp[i-1][j-w[i]]指的是访问减去这次重量后,上次的dp有没有价值,也可以理解成当背包容量为j-w[i]时的背包所含价值。数组v也是存放物品价值,也可以存物品的重量。

2025-03-04 19:42:40 511 3

原创 第十五届蓝桥杯省赛C/C++C组C题【数字诗意】详细题解

在诗人的眼中,数字是生活的韵律,也是诗意的表达。小蓝,当代顶级诗人与数学家,被赋予了"数学诗人"的美誉。他擅长将冰冷的数字与抽象的诗意相融合,并用优雅的文字将数学之美展现于纸上。某日,小蓝静坐书桌前,目光所及,展现着 n 个数字,它们依次为 a1​,a2​,…,an​,熠熠生辉。小蓝悟到,如果一个数能够以若干个(至少两个)相加表示,那么它就蕴含诗意。例如,数字 6 就蕴含诗意,因为它可以表示为 1+2+3。而 8 则缺乏诗意,因为它无法用连续的正整数相加表示。

2025-02-27 17:30:33 621

原创 第十五届蓝桥杯省赛C/C++C组E题【回文数组】详细题解

小蓝在无聊时随机生成了一个长度为 nn 的整数数组,数组中的第 ii 个数为 aiai​,他觉得随机生成的数组不太美观,想把它变成回文数组,也是就对于任意 i∈[1,n]i∈[1,n] 满足 ai=an−i+1ai​=an−i+1​。第二行包含 nn 个整数 a1,a2,⋯,ana1​,a2​,⋯,an​,相邻整数之间使用一个空格分隔。第一次操作将 a1,a2a1​,a2​ 加 11,变为 2,3,3,42,3,3,4;后面两次操作将 a1a1​ 加 11,变为 4,3,3,44,3,3,4。

2025-02-27 14:44:32 326

原创 第十五届蓝桥杯省赛C/C++C组H题【回文字符串】详细题解

小蓝最近迷上了回文字符串,他有一个只包含小写字母的字符串 SS,小蓝可以往字符串 SS 的开头处加入任意数目个指定字符: l、q、bl、q、b(ASCIIASCII 码分别为: 108、113、98108、113、98)。每次删除前需要对字符串进行判断,判断它是不是回文字符串,如果是就停止,不是继续删,删到没有再进行判断,如果不是那就真的不是回文字符串。对于 50%50% 的评测用例, 1≤∣S∣≤10001≤∣S∣≤1000,其中 ∣S∣∣S∣ 表示字符串 SS 的长度;接下来依次描述 TT 组数据。

2025-02-26 19:07:13 574

原创 第十五届蓝桥杯省赛C/C++C组D题【封闭图形个数】详细题解

可以用c语言的结构体数组来写,再用一个sort这个排序函数。注意一下求一个数字的每个位和cmp()比较器的写法。

2025-02-26 13:03:24 288

原创 第十五届蓝桥杯省赛C/C++C组G题【挖矿】详细题解

小蓝从 0 出发,每次可以向左或向右移动 11 的距离,当路过一个矿洞时,就会进行挖矿作业,获得 11 单位矿石,但一个矿洞不能被多次挖掘。对于所有评测用例,1≤n≤105,−106≤ai≤106,1≤m≤2×1061≤n≤105,−106≤ai​≤106,1≤m≤2×106。路径:0→−1→0→1→20→−1→0→1→2,可以对 0,−1,1,20,−1,1,2 四个矿洞挖掘并获得最多 4 块矿石。第二行包含 nn 个整数 a1,a2,⋯,ana1​,a2​,⋯,an​,相邻整数之间使用一个空格分隔。

2025-02-26 12:52:40 892 2

原创 第十五届蓝桥杯省赛C/C++C组F题【商品库存管理】题解(AC)(暴力和前缀和差分)

所以我们可以假设所有操作都做,再通过差分算法还原这个未去除操作的库存量,因为操作后的库存会增加一,我们可以在限定区间内在未去除操作的库存里找库存量为1的个数,同时找库存量为0的个数(区间不可能有0,直接遍历即可)然而,在某些情况下,管理团队可能会决定不执行某些操作,使得这些操作涉及的商品区间内的库存量不会发生改变,维持原有的状态。对此,请你为管理团队计算出,每个操作未执行时,库存量为 00 的商品的种类数。差分数组 直接还原 在给定区间内找1的个数和非给定区间内0的个数,而给定的区间内不可能为0。

2025-02-25 18:17:19 1565

原创 算法竞赛模板(二分法找最值)(非常简单)(很全的收藏一下吧,很难再找到了)

首先进行二分查找,尽可能的缩小查找范围,但只要找到了一个满足题意的数据,立即提高mid的值,往上查找,一但出现不符合题意的数据,就缩小mid的值往下查找,最终找到在合法数据内满足题意条件的最大值。,执行if语句,先记录下mid的值,l=6(增加下限l的值,如果符合条件就增大mid的值,寻找最大值,,执行if语句,先记录下mid的值,r=3(减少上限r的值,如果符合条件就减小mid的值,寻找最小值,,执行if语句,先记录下mid的值,r=2(减少上限r的值,如果符合条件就减小mid的值,寻找最小值,

2024-06-19 13:14:00 774

原创 时间复杂度以及写算法题超时的可能原因(个人亲身经历)

给初次参加算法新人的建议

2024-06-18 15:38:37 433

原创 关于相同的代码在vs2022报错但在DEV-C++不报错的原因(自己总结的一部分)

相同的代码在vs报错但dev不报错的原因

2024-06-18 15:13:48 870

原创 DFS查找到每个点的最短距离(非常简单)(邻接矩阵)

适合新人对深度算法的理解,本文只是对课本的算法进行扩充,求起点到每个点的最短距离(非常简单)

2024-06-13 14:20:45 704 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除