- 博客(24)
- 收藏
- 关注
原创 蓝桥杯 连续子序列
给定一个长度为 n𝑛 的非负整数序列 a1,a2,…,an𝑎1,𝑎2,…,𝑎𝑛。请你计算,一共有多少个该序列的子序列满足:子序列内的所有元素的按位异或和不小于 k𝑘。
2024-06-10 18:52:02
231
原创 蓝桥杯 空调(差分)
这里要先解释差分:他为什么可以将区间操作转化为两个点之间的操作如 : 目标数组 1 5 3 3 4初始数组 1 2 2 2 1可以得到两数组差 0 3 1 1 3去掉0:3 1 1 3在使b[i]=b[i]-b[i-1]得到差分数组3 -2 0 2 -3这里为什么能通过对一个点进行-1,一个点加一,将数组完全转化为全0就能实现我们的目的呢?这里就要看,因为这个我们可以知道数组内为负数说明他一定小于前面的数,正数则一点大于前面的数。
2024-04-08 20:20:37
300
原创 蓝桥杯 奶酪
现有一块大奶酪,它的高度为 hℎ,它的长度和宽度我们可以认为是无限大的,奶酪中间有许多半径相同的球形空洞。我们可以在这块奶酪中建立空间坐标系,在坐标系中,奶酪的下表面为 z=0,奶酪的上表面为 z=h。现在,奶酪的下表面有一只小老鼠 Jerry,它知道奶酪中所有空洞的球心所在的坐标。如果两个空洞相切或是相交,则 Jerry 可以从其中一个空洞跑到另一个空洞,特别地,如果一个空洞与下表面相切或是相交,Jerry 则可以从奶酪下表面跑进空洞;
2024-03-23 16:01:53
264
原创 蓝桥杯 双端队列
给定一个长度为 n� 的双端队列 a1,a2,…,an�1,�2,…,��。作为双端队列,我们既可以从队列的左端弹出元素,也可以从队列的右端弹出元素。我们希望弹出尽可能多的元素,并要求所有弹出元素按照弹出顺序进行排列,刚好可以构成一个严格递增的序列。请你计算,最多可以弹出多少个元素。
2024-03-22 22:24:07
243
1
原创 蓝桥杯 母亲的牛奶
农夫约翰有三个容量分别为 A,B,C 升的挤奶桶。最开始桶 A 和桶 B都是空的,而桶 C 里装满了牛奶。有时,约翰会将牛奶从一个桶倒到另一个桶中,直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止。这一过程中间不能有任何停顿,并且不会有任何牛奶的浪费。请你编写一个程序判断,当 A桶是空的时候,C 桶中可能包含多少升牛奶,找出所有的可能情况。
2024-03-19 20:03:27
274
原创 蓝桥杯 奶牛选美
听说最近两斑点的奶牛最受欢迎,约翰立即购进了一批两斑点牛。不幸的是,时尚潮流往往变化很快,当前最受欢迎的牛变成了一斑点牛。约翰希望通过给每头奶牛涂色,使得它们身上的两个斑点能够合为一个斑点,让它们能够更加时尚。其中,X� 表示斑点部分。如果两个 X� 在垂直或水平方向上相邻(对角相邻不算在内),则它们属于同一个斑点,由此看出上图中恰好有两个斑点。约翰牛群里。约翰希望通过使用油漆给奶牛尽可能少的区域内涂色,将两个斑点合为一个。请帮助约翰确定,为了使两个斑点合为一个,他需要涂色区域的最少数量。
2024-03-19 19:01:47
225
原创 蓝桥杯 木棒
乔治拿来一组等长的木棒,将它们随机地砍断,使得每一节木棍的长度都不超过 5050 个长度单位。然后他又想把这些木棍恢复到为裁截前的状态,但忘记了初始时有多少木棒以及木棒的初始长度。请你设计一个程序,帮助乔治计算木棒的可能最小长度。每一节木棍的长度都用大于零的整数表示。
2024-03-18 19:51:00
329
1
原创 蓝桥杯 网络稳定性
有一个局域网,由 n 个设备和 m 条物理连接组成,第 i 条连接的稳定性为wi。对于从设备 A 到设备 B 的一条经过了若干个物理连接的路径,我们记这条路径的稳定性为其经过所有连接中稳定性最低的那个。我们记设备 A 到设备 B 之间通信的稳定性为 A 至 B 的所有可行路径的稳定性中最高的那一条。给定局域网中的设备的物理连接情况,求出若干组设备 xi 和 yi 之间的通信稳定性。如果两台设备之间不存在任何路径,请输出 −1。
2024-03-16 19:12:31
689
2
原创 蓝桥杯 子矩阵
这里你可以画个图来模拟窗口的滑动,(满窗口同时数据够大1的情况下)当窗口中一个元素离开窗口就必定有另一个元素进窗口,j-b+1相当于是当前窗口的起点,如果这个值比h(设置的起点的值更大)就说明当前起点已经不在窗口内了,就需要向后移动。这里不需要担心窗口的滑动会影响到最大值的选取,因为这里的窗口末尾更新与之前的q[h] < j - b + 1、和h<=t限制了最大值的选取。这里解决了一开始t=-1的更新问题,++t保留了原来t位置的信息,当原来的t位置出窗口,现在的t就有机会成为最大的。
2024-03-10 21:05:16
395
1
原创 蓝桥杯 飞机降落
N 架飞机准备降落到某个只有一条跑道的机场。其中第 i 架飞机在 Ti 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di 个单位时间,即它最早可以于 Ti 时刻开始降落,最晚可以于 Ti + Di 时刻开始降落。降落过程需要 Li个单位时间。一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。请你判断 N 架飞机是否可以全部安全降落。
2024-03-05 11:14:54
182
1
原创 蓝桥杯 砍树解析
calsum就是更新所有点的点权,当点权跟题目给出的对数相等时,这个点就是为我们需要的点了。dfs1(u,f),f为u节点的父节点,dfs1遍历整颗树,将树中的节点分为重节点(该节点的子节点中子节点的节点树最多的点)以及该节点的深度,及其父亲节点。断开第 4 条边后形成两个连通块:{1, 2, 3, 4},{5, 6},同样满足 3 和 6 不连通,4 和 5 不连通。断开第 2 条边后形成两个连通块:{3, 4},{1, 2, 5, 6},满足 3 和 6 不连通,4 和 5 不连通。
2024-03-02 17:45:09
525
原创 PTA 求前缀表达式的值
算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。前缀表达式指二元运算符位于两个运算数之前,例如。请设计程序计算前缀表达式的结果值。
2024-01-02 19:36:57
522
原创 PTA 汉诺塔问题的非递归
题目:借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。
2024-01-02 17:05:13
522
原创 PTA 还原二叉树
通过他前序遍历规则我们可以知道,即使树移除了一个点(在保证树结构不被破坏的情况下,或者直接分裂成一棵新树),前序遍历的第一个输出仍然是根节点;而通过中序遍历的规则我们可以知道,根节点左边是左子树,右边是右子树。这题就是不断找根节点,将通过中序遍历输出将根节点左右分开,充当新的左子树和右子树,并将左右子树的根节点分别充当当前节点的左右结点,不会丢失数据。(字面上不太好理解,可以自己画一个图,一步步推,这样很好理解)。这就需要我们了解前序和中序遍历的原则。查树有多少层,这里我就不讲了,这个很容易,直接递归。
2024-01-01 20:20:29
821
原创 PTA 搜索树判断
通的构造二叉树的方法,一个一个点的比较)。比较完后就是拍排序,题目说了,我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树,那么我们将普通二叉树的左右结点的排序规则交换一下,就得到了这种树的排序规则。解这一题我们先通过输入构造搜索二叉树,无论输入是镜像二叉搜索树,还是什么其他的,有一个输入我们就可以通过它直接构造搜索二叉树(就用最普。惯例,以上均本人愚见,不喜勿喷。如有优化请留言,我会及时回复。
2023-12-31 22:18:09
533
1
原创 PTA 修理牧场
这道题要用到哈夫曼构造最小二叉树,一开始构造最小二叉树搞错了,直接将新构成的点,充当下一个最小结点了,一直没写出来,直到重新看了一遍构造最小二叉树的定义才解决了。惯例,以上均本人愚见,不喜勿喷。如有优化请留言,我会及时回复。下面是代码(内有详细注解)
2023-12-31 18:52:52
381
1
原创 PTA表达式转换
排序的关键是运算符的优先级问题,以及正负数中的符号与加减号如何区别。还有内括号的先运算。这里要注意各个输入的情况,有正负数,和小数的存在,但题目上没写,这是最烦的。惯例,以上均本人愚见,不喜勿喷。如有优化请留言,我会及时回复。
2023-12-30 21:16:03
635
1
原创 QQ帐户的申请与登陆
这道题的难点是string类型的比较,这里我通过一个map<long long int,string>来存储账号和密码,一个map<long long int ,int >来判断这个账号有没有出现过。惯例,以上均本人愚见,不喜勿喷。如有优化请留言,我会及时回复。
2023-12-30 18:39:54
428
1
原创 PTA电话聊天狂人
这道题其实很简单,关键在于,string类型的比较以及存储。要记录电话号码出现的次数,就需要先判断这个号码是否已经出现,或者出现了多少次,能够实现这个过程的方法很容易就能想到用map(键值对),再用结构体来解决通话次数相同的情况下输出的问题。惯例,以上均本人愚见,不喜勿喷。如有优化请留言,我会及时回复。
2023-12-30 11:12:32
374
1
原创 7-27 家谱处理
注意这里的arr1并没有将所有的数据都保存,相同空格数的单词在数组中会被覆盖,但这并不影响后面的判断(arr1,相当于一个中专栈,他里面的数据都会转存到map中,画个图这里就很好理解了),map里存储了他的父亲。一开始的解题思路是将每一个输入的姓名都保存下来,通过空格的数目来确定她们之间的关系(这样是真的难写,没有考虑后面ancestor,和descendant关系的判断,以及隔代空格输入不一定是一直输入两个空格,且parent的判断会有问题),下面给出我一开始的初始代码。
2023-12-29 21:35:57
348
1
原创 PTA 7-25朋友圈(25)
将x充当一个集的起始部分,判断y元素充当下标在arr中对应的数是否为负数,为负数则说明这个数还没有存在与任意一个集中,更新x对应数据(也就是-1,因为要保证x所对应的数据一定小于零),y对应的数据更新为x,相当与将y这个数归类到x中,如果y不为负数这说明这个数已经在其他集中了,通过他对应的数据可以找到他所在那个集的起始部分,也就能更新集中元素的个数。但这样写每输入一行数据就要与之前输入的数据进行比较,数据量很大,即使考虑了一个圈中可能有多个人属于另一个圈(这些人的所属的这个圈相同),数据仍然很大。
2023-12-28 20:27:31
628
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人