- 博客(37)
- 收藏
- 关注
原创 P9425 [蓝桥杯 2023 国 B] AB 路线(bfs)
本道题和普通的bfs板子题不一样,它是一个格子可以走很多次,这里的话一个格子走的不能超过k次,所以我们在st数组又加了一维,表示这个格子不能走的超过k次,其他的和模板是一样的。
2025-04-02 19:31:44
142
原创 P1825 [USACO11OPEN] Corn Maze S(bfs)
该题是bfs的问题,主要不同于板子bfs,它有传送门,而且只要到了传送门就必须传送,刚开始一直wa,原因是我把传送门的开始和结尾都标记了,但是我们看代码最后的那个样例,我们从(2,4)开始,到(1,4),必须传送到(1,2),如果我们把(1,2)标记了,那就无解了,但是我们可以从(1,2)再传送回(1,3),最后到达(1,5)终点,所以我们在遇到该点是字母时,我们只需要把该点标记即可,这样就避免了这个问题。
2025-03-27 13:47:27
141
原创 洛谷 P1351 [NOIP 2014 提高组] 联合权值(树)
本题是关于树的问题,刚开始我认为只要dfs,每一次找该点的下下一个点,然后枚举就可以了,但是我忽略了对于我刚开始就随便找了一个当作根,所以接下来的兄弟节点就不可能有联合权值,但是他们也是符合条件的,所以我们只需要枚举中间那个点就可以,只需要找到该点的邻居节点的最大值和次大值,至于联合权值的和,该点的邻居节点肯定要和其他邻居节点都要乘起来加和,所以我们可以算出来该点的邻居节点的和sum,然后遍历邻居节点时(假如值为x)值就为x*(sum-x)。图上两点 (u,v) 的距离定义为 u 点到 v 点的最短距离。
2025-03-25 19:12:09
197
原创 天梯赛练习集L2-041 插松枝(模拟)
(2)当前的松枝干不为空,我们就先从小盒子最上面取(盒子不为空且必须小于等于松枝干的上一个),否则我们就从推送器上取,这块注意是while循环,因为我们要一直取,直到推送器为空或者小盒子满了或者找到了才结束,这块就有了这支松枝结束的条件(推送器为空或者小盒子满了),还有需要注意的点就是如果盒子满了我们要把从推送器上取出来的重新压回到推送器。思路:我想的是因为有每支成品结束的条件,所以我们以松枝干的大小作为循环来判断,至于大循环怎么结束,那就是松枝的数量等于n时就结束,我觉得这样很好理解。
2025-03-21 10:48:33
149
原创 牛客周赛 Round 85 D小紫的优势博弈
我们可以看出求小紫获胜的概率的话,那么分母一定是n,代表着小紫删除1-n个字符,现在我们考虑分子,假设小紫删除了i个字符,那么我们需要找的就是从i+1到后面的某个位置存在一个区间使得该字符串为双生串,这样我们就想到从后面来看,因为只有0,1两种字符,所以每个位置的状态就在【0,3】,如果此时小紫删除的串的0的个数为偶数,1的个数为奇数,那么我们就应该判断后面是否存在2(01)的这样的值,因为这样才可以消掉,所以我们那mp数组来记录一下后面截止到i的状态,注意不能枚举到1,因为小红是不允许删除空串的。
2025-03-18 10:54:03
191
原创 L2-3 花非花,雾非雾
正确思路是并查集+dfs,因为如果a^b=c,那么a和b一定是有关系,我们就可以想到他们是一个连通块,而且只要这个连通块里面有一个确定的值,其他的数就都可以确定,所以不管冲不冲突,对于a^b=c我们只需要判断a和b是否再同一个连通块中并且确定值必须<=1,对于a=b,我们就判断a所在的连通块是否已经有了一个确定的值,如果没有,我们就把下标为a的值赋成b并且a所在的连通块就已经有了值。第三条信息 a1 ^ a5 = 5 (与前面能得出的信息矛盾,忽略该信息)(1≤x,y≤n,1≤ai≤109)
2025-03-17 21:30:41
412
原创 牛客周赛 Round 84 G小红的陡峭值(思维,逆元)
(1)我们考虑ai,aj两个数相邻的次数是多少,相当于把ai,aj捆绑在一起(当成一个数)和剩下的n-2个数进行排列,那次数就是(n-1)!(1<=i<=j<=n),这个式子的值就可以算出来,我们把数组从小到大排列,然后对与每个aj,我们可以化简为(j-1)*a[j]-s[j-1](s数组为前缀和)。*2/n,注意除法取模要用费马小定理(a/b%mod=a*qmi(b,mod-2,mod)%mod)。(乘以2是因为ai,aj是有顺序的,对应的是两种不同的方案),化简得2/n。
2025-03-09 22:27:53
118
原创 PTA甲级1131 Subway Map(最短路)
该题是最短路算法,其中建图的时候,因为题目中说可能会有环,但是不会有自环,如果没有环,那一条地铁线之间的距离就是两个下标之差,如果有环,那就要考虑取最近的距离最为两点之间的距离, 最后的答案还要输出路线,我们可以在更新前驱节点的同时更新路线,最后就和以前的题一眼,直接递归输出即可。
2025-03-04 20:18:32
122
原创 PTA甲级1175 Professional Ability Test(拓扑序列,最短路)
本道题意思是你想要参加B就必须完成A,A是B的前置条件,如果存在一个点它是自己的前置条件,则不可能,意思就是形成环,我们用。来判断是否形成环,然后,不会形成环的话,但是我们有多个源点,如果我们从每个源点进行最短路,会超时,,只用进行一次最短路就可以得出最短路,最短路就是很常见的有前驱节点更新信息的。主要还是读明白题,了解题的意思思路就很清楚了。
2025-02-27 20:09:31
143
原创 PTA甲级1087 All Roads Lead to Rome(最短路算法)
还是初始化的问题,我们在算最短路径的条数时,初始化应该为1,应为至少也会有一条,如果遇到比它距离短的路径,那条数应该直接换成新的,如果是相等,那我们应该加上;计算平均幸福值的时候,注意因为起点是没有幸福值的,所以我们的cnt1[0]=0(不算起点)。最短路算法,这道题是在有多条距离最短的路径里面选幸福值最大的,如果还有多条,则选择平均幸福值最大的那条路径。
2025-02-27 16:37:28
171
原创 PTA甲级1111 Online Map(最短路算法)
思路:一是求距离最短路径,如果不唯一,则选择最短路径中时间最短的路径(1);二是求时间最短的路径,如果不唯一,则选择时间最短路径中通过的街道数最少的;需要注意的是,注意初始化一条路的长度和时间,因为这道题涉及到是双向边还是单向边,如果不初始化为无穷,就相当于是双向可达的,答案肯定是错误的,一定要注意读题。本题为最短路的模板题,写这道题主要是为了复习一下有附加条件的时候怎么求最短路,怎么求路径。(2)同理,如果有多条,我们就比较时间相等时数量的大小,然后更新pre1数组。
2025-02-27 15:57:44
207
原创 PTA甲级1034 Head of a Gang(并查集)
该开始我是便输入边用并查集判断的,但是出现一个问题,因为如果边输入边判断每个人权重是一直变化的,那每个连通分量的最大的那个人就得一直变化,不好判断,所以我把所有人的权重存了下来,这样,当一个连通分量需要再加入一块的时候,我就可以直接比较这俩块最大的那个人权重,然后更新一下就可以了。本题的思路很简单,找到一个联通分量里面的人数>2并且总时间大于k,并且记录下来每个联通分量里面权重最大的人。写这道题的意义是为了理清思路,还有bug时候的问题。
2025-02-26 14:15:39
168
原创 L2-047 锦标赛
这道题耽搁了很久,主要是没有找到一个很容易懂得题解,最后看过很多的题解,最后决定采用dfs来解决,本质上就是二叉树,加上范围也很小,所以dfs爆搜可以解决。主要就是把胜者和败者合在一起,就把胜者放在左半边,右半边都试一下,有一个符合条件就返回true,主要还是怎么存储的问题,把这个理清楚思路非常的简单。主要考察的知识点是二叉树的表示形式,合理的应用二叉树的知识,下标等。
2025-02-20 18:12:52
139
原创 The 2023 ICPC Asia Nanjing Regional Contest (The 2nd Universal Cup. Stage 11: Nanjing)G. C
G题的主要思路为01背包+思维,我们当时vp的时候主要是不知道根据什么排序,根据题解,根据价格从小到大排序,我们可以枚举。
2024-10-29 18:42:54
158
1
原创 Codeforces Round 970 (Div. 3) E. Alternating String
思路:如果n为偶数时,我们只需要判断奇偶数位置字母的最大值,最后拿n减去即可,主要时n为奇数时,我们不确定删除哪一个位置的字母,所以我们遍历删除每一个字母的情况,这里我们应该开两个二维数组a[i][j],b[i][j]分别表示前i个位置中j的个数是多少,当删除该位置时,前面的奇偶行性不变,后面的奇偶性相反,所以这道题的思路就很清晰了。题目大体意思:就是通过两种操作,删除一个位置的字母(最多一次)或者把任意位置的字母替换成另一个字母,使得奇数位置的字母对应相等,偶数位置的字母对应相等。
2024-09-03 07:38:18
294
原创 Educational Codeforces Round 157 (Rated for Div. 2) C. Torn Lucky Ticket
思路:思路就是枚举每一个字符串,然后把每个字符串当成是拼接后的前缀和后缀,符合条件的记录下来就好。思路简单,不过就是从哪里开始循环,哪里结束,要想清楚,不然会有重复的情况,最好画一下图模拟一下,会很清楚,这道题记录的原因是很考验耐性,用二维数组来记录每一个字符串的位数和和,在遍历字符串的符合条件的直接加入答案即可。本题的大意是两个字符串拼接在一起,然后可以分成两半,前后两半的和相同。
2024-07-20 15:37:23
291
原创 Codeforces Round 959 sponsored by NEAR (Div. 1 + Div. 2) C. Hungry Games
主要思路:找前缀和第一次大于k的下标idx(二分),然后我们发现idx+1的方案数相当于把idx+1当作左端点来算,然后我们就想到dp[i]代表以i为左端点的方案数。总结:在比赛的时候找到了idx,但是因为没有想到用dp来表示,所以是一直递归下去,然后因为一些边界问题还是没有写出来。一般这种区间的问题,就是以左端点或者右端点为起点,然后在较小的时间复杂度内找到符合条件的区间数。ps:本题因为需要用到后面的状态,所以我们从后往前二分来做。本题大意就是找到最后g不等于0的区间个数。
2024-07-19 19:04:26
369
原创 2024牛客暑期多校训练营1 A
思路:考虑子序列,如果让&结果为1,那么我们必须选第0位为1的数,即奇数,有2^i-1(i为奇数个数),那么m-1位则是(2^i-1)^(m-1),剩下的n-i位位偶数,则有(n-i)^(m-1),最后因为是子序列,所以要选出i个数为奇数,用到组合数的思想,最后的答案为C[n][i]*(2^i-1)^(m-1)*(n-i)^(m-1)。本题的大致意思是 存在长度为n的A序列,且A中的数的范围为0-2^m-1,存在子序列的与运算结果为1,有多少个这样的A。
2024-07-17 10:40:13
273
原创 Codeforces Round 881 (Div. 3) E. Tracking Segments
思路:本题如果暴力一定会超时,那我们可以用二分来做,每次假定mid就是答案,然后用答案来推断是否至少存在一个漂亮数组,那问题是,我们怎么判断是否存在呢,我们需要用到前缀和的思想,既然我们已经确定前mid次改变,那么哪个点是1就已经确定了,所以我们只要用前缀和记录在前mid次改变中,1-n 的那点为1就可以,然后遍历每一条线段,判断是否符合1的个数大于0的个数,无解的情况是r=q+1。
2024-07-11 20:49:42
285
原创 Codeforces Round 888 (Div. 3)E. Nastya and Potions(搜索)
思路就是dfs,记录这道题的原因是因为我把dfs的顺序给放错了,导致更新的信息很乱,这道题相当是要先更新孩子的信息,然后再更新父节点的信息,所以在更新信息时应该放在dfs的后面。
2024-07-06 20:07:52
151
原创 Acwing 1174. 受欢迎的牛(Kosaraju算法)
所以我们来想如果两个点相互可达,那当有其中一个点可以到另一点a时,那么这两个点的另一点也可通过该点到达 a,所以我们应该求强连通分量,然后通过缩点得到一个DAG图,如果是拓扑图的话,那样答案就是出度为0的那个点(缩点后)。记录该题是因为刚学习Kosaraju算法,对于该算法不是很熟练,如果有错误或者不对的地方请指正。求强连通分量的方法有Kosaraju算法和Tarjan算法,这里就用了Kosaraju算法。如果暴力来说,我们遍历每一个点,dfs,看看是否符合条件,这样肯定超时。
2024-07-06 19:45:11
205
原创 牛客练习赛127 小红的图上划分
思路:本题要求最大划分价值,我们把边按照权重排序,然后每一次加入最大权重的那条边,那么在第一次到某个连通块个数时,此时的边的权重就是最小的。本题在补题的时候也绕了很久,主要问题是最大的划分价值,我忽略了这一点,所以觉得按权重大小排序有点问题,其他就没问题了。利用并查集来解决,每次看加入的边是否在同一集合里,不在的话,并在一块,连通块的个数也就要减去1。
2024-07-06 17:19:23
284
原创 牛客练习赛127 小红的约数
主要思路上述已给,在比赛时没有读清题目,导致浪费很多时间,求的是该数的所有约数的幂次之和,要想到其实一个数的每一个约数都可以由这个数的质因数来表示,所以我们就可以带入公式用等比公式来求出答案。
2024-07-06 10:09:14
287
原创 Codeforces Round 900 (Div. 3) E. Iva & Pav
【代码】Codeforces Round 900 (Div. 3) E. Iva & Pav。
2024-06-30 11:15:08
187
原创 牛客小白月赛97 D 走一个大整数迷宫
本题的思路主要卡在每个格子可以走很多次来满足题目中的条件,因为如果走很多次我不知道结束条件是什么,所以正确思路为,因为n,m的值很小,可以开三维数组来解决这个问题,dist[x][y][p]表示坐标为(x,y)的格子经过计数器取模后的离(1,1)的距离,加上一维后完美解决了我担心的问题,最后dist[n][m][0]即为所求,这个思路也是很常用的,所以还要多加总结。
2024-06-29 10:47:54
266
原创 Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2)C. Divisor Chain.
本题思路非常巧妙,我们把x转化为二进制,然后从最低位开始找1,这个我们就联想到lowbit的值就是最低位1加上后面的0的十进制的值,而且lowbit(x)是x的因子,所以我们每次减去lowbit(x)剩下的值就是所求,最后到x==lowbit(x),说明我们把该数变成了2的幂次,然后一直除以2直至为1即可。
2024-06-11 17:54:01
141
原创 Codeforces Round 949 (Div. 2)
1s后 0|1 0|1|2 1|2|3 2|3|4 3|4|5.....主要问题在于我直接把位运算的结果写出来观察情况,发现规律很混乱,所以我也学到要写出来不着急算出来,观察规律是什么,位运算是一个很常见的方法,这块知识不是很熟练,会加强练习的。2s后0|1|2 0|1|2|3 0|1|2|3|4 1|2|3|4|5...由此我们可以看出左边界l=max(0,n-m),右边界r=n+m。例如 100100。
2024-06-01 23:18:54
952
原创 牛客周赛44 D
该题的思路时前缀和s[i][j]表示数组前i个数中因子为j的数的个数,然后再查询的时候可以枚举因子的个数来求最后的答案。通过代码枚举我们可以求出1e5中的因子数最大为128,所以开开到140。
2024-05-28 22:14:12
188
原创 构造思维题(持续更新中...)
该题我写的时候主要是想错了,想的是通过前一个数来推出后一个数,应该填的是该数的倍数,那又有一个问题,如果直接枚举该数的倍数,遇到全是1的情况,那就会超时,所以如果a[i]!=a[i-1],直接就可以填a[i],如果a[i]==a[i-1],那么我们从p[i-1]+a[i]开始枚举,找到a[i]的倍数的最小值。格格有一个长度为 nnn 的排列 ppp,但她不记得 ppp 具体的样子,她只记得数组 aaa。(但有可能无解,这意味着格格给出的 aaa 数组可能是不正确的,此时输出 −1-1−1 即可。
2024-05-25 14:09:18
248
原创 Codeforces Round 945 (Div. 2)
该题的主要思路是把二进制的每一位分开来看,如果第i位对应的是0,1,0,0,0,那么我们需要选k=4来满足题目中的条件,还有一个特例,当连续的0的个数等于n时,我们就可以直接跳过,因为这样的情况下对k的大小没有限制,最后我们的答案取所有位的最大值(为了满足所有位都满足条件)。小tips:对于二进制的题目,要进行拆位运算,还是多练,思维慢慢提升。
2024-05-19 15:19:47
278
原创 Codeforces Round 918 (Div. 4)E
这道题的想法非常巧妙,因为是让一个区间里的下标为奇数和偶数的和相等,我们可以把下标为偶数的置为负数,把每一次得到的前缀和标记一下,如果该前缀和前面已经出现过,说明这个区间一定存在符合的条件。
2024-05-11 19:57:02
210
1
原创 Codeforces Round 943 (Div. 3)
比赛时居然卡了10分钟,主要问题没有读清题是输出y的值,一直输出最大的结果(一定要都读清题再下笔)
2024-05-03 14:42:42
393
1
原创 L2-050 懂蛇语
在《一年一度喜剧大赛》第二季中有一部作品叫《警察和我之蛇我其谁》,其中“毒蛇帮”内部用了一种加密语言,称为“蛇语”。蛇语的规则是,在说一句话 A 时,首先提取 A 的每个字的首字母,然后把整句话替换为另一句话 B,B 中每个字的首字母与 A 中提取出的字母依次相同。例如二当家说“九点下班哈”,对应首字母缩写是JDXBH,他们解释为实际想说的是“京东新百货”……本题就请你写一个蛇语的自动翻译工具,将输入的蛇语转换为实际要表达的句子。
2024-04-23 16:56:58
659
原创 天梯赛:药剂合成
他不断探索和研究新的魔兽材料,并与其他药剂师分享他的发现,为整个魔法界带来了新的治疗和增强药剂的可能性。第三行为 q 代表询问次数,接下来 q 行每行给出三个整数,第一个整数 k 代表魔法基础药水的基础魔法值,第二个整数 l 代表所能选取魔兽材料的左边界,第三个整数 r 代表能选取魔兽材料的右边界。基础魔法值代表了药水中魔法的原始能量,而魔兽材料的稀有度则代表了其珍贵程度和对药水效果的影响力。MarcusL独特的发现是,药水的魔法效果取决于基础魔法值与所选取的魔兽材料稀有度数值的最大公因数。
2024-04-17 09:26:17
350
原创 天梯练习赛:石头剪刀布
为了决定谁对谁错(或许两人都错了),机智的HN建议采用最朴素和最公平的方法——石头剪刀布游戏。然而,好奇心旺盛的HN向ZH询问了比赛的过程和结果。ZH仅仅告诉了HN他的出拳顺序以及比赛的比分。HN并不想在这种无意义的事情上浪费时间(实际上他也不会解决),因此希望你来帮他确定是否存在一种LX的出拳顺序能够使比赛结果符合ZH所说的比分。输入为两行,第一行为两个整数x,y分别代表LX和ZH的最终得分,第二行为ZH的出拳顺序 s。"shitou"代表石头,"jiandao"代表剪刀,"bu"代表布。
2024-04-17 09:17:25
472
原创 天梯赛L2-001 紧急救援
最后附上一张图片,激励正在为梦想拼搏的你,fighting!作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。
2023-09-16 12:34:59
75
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人