- 博客(64)
- 收藏
- 关注
原创 力扣第452场周赛
解题思路: 用BFS 求出 a[i][j][w][k]: 表示位于(i,j), 还有w的能量, 捡垃圾的情况是 k 所需的最小步数(给每个垃圾一个 0-9 的编号),用一个二进制 k 表示哪些垃圾已经捡过了), 注意有个重要的剪枝 ,如果这个 (x,y,new_k) 状态 已在更高能量访问过,就不必用较低能量访问,避免重复搜索。[2] 包含 1 个不同的质数,[2, 3, 1, 2] 包含 2 个不同的质数。输入: nums = [2,1,3,1,2], queries = [[1,2],[3,3]]
2025-06-02 11:42:05
999
原创 牛客2025年儿童节比赛
这个G, 比赛的时候我看好多人都过了,我一直认为是child,这个badge是什么东西啊。对了,后面半个月就不更新了(其实是期末周了), 暑假有机会再更新。吐槽:这个A还要去出题人的主页找线索, 太离谱了吧。补充:力扣周赛还有一篇文章, 应该明天会发。
2025-06-01 21:35:23
315
原创 用JS实现植物大战僵尸(前端作业)
图片包含:植物cd好的状态和冷却期的状态,植物空闲状态/攻击状态,僵尸包含移动状态/攻击状态/樱桃炸弹炸的效果, 同时我们提供对外的imageFromPath函数, 用来生成图片路径。只对JS中常见的DOM/BOM和基础语法进行巩固,后续的CSS代码和相关图片资源也会上传。左侧卡片:当我们使用了一个植物后,它的状态就会改变, 类似于进入到冷却时间。为植物和僵尸设置不同状态下的动画效果。
2025-05-31 23:06:34
2213
5
原创 牛客小白月赛117
解题思路:贡献法, 枚举中位数, 求mid =1 -> n 的乘积, 每个mid ^(mid在所有肯呢个排列中的所有可能区间中位数的情况数),枚举所有可能的区间长度 len=1, len=2, len=3....len=n。一个数组的众数:指的是这个数在数组中的出现次数最多,如果有多个数出现次数最多,则这些数中最大的那个数是众数,如:{1,2,2,4} 的众数为 2, {3,3,2,2,1,1} 的众数为 3。注意输出均为大写字母。,an(−1≦ai≦1),表示每一个同学的数字与平均数的关系。
2025-05-31 16:35:13
1016
原创 牛客周赛 Round 94
y<x, 首先x不能是2的幂次, 如果x是2的幂次, 说明它二进制数中只有一个1, eg: 4(100), 8(1000) , 此时x&y=0, 就不满足基本三角形的性质, 如果不是2的幂次, 让y等于最多二进制数最左侧1的大小, 然后x&y=y, 此时恰好满足基本基本三角形的性质。小苯给定了一个正整数 x,他对三角形很感兴趣,因此他想要你构造一个严格小于 x 的正整数 y(1≦y<x),使得 x,y,xandyx, 这三个数字作为三角形的边长,可以构成一个非退化的三角形。
2025-05-26 22:00:36
716
1
原创 力扣第451场周赛
你可以将木材切成更小的段,其中将长度为 x 的木材切割成长度为 len1 和 len2 的段的成本为 cost = len1 * len2,并且满足 len1 + len2 = x。移除字符串中 任意 一对 相邻 字符,这两个字符在字母表中是 连续 的,无论顺序如何(例如,'a' 和 'b',或者 'b' 和 'a')。当且仅当在第一个不同的位置上,字符串 a 的字母在字母表中出现的位置早于字符串 b 的字母,则认为字符串 a 的 字典序小于 字符串 b,。因此,所有可能移除操作后的最终字符串为 "c"。
2025-05-25 18:42:57
874
原创 力扣第157场双周赛
树由一个长度为 n - 1 的二维整数数组 edges 表示,其中 edges[i] = [ui, vi] 表示在节点 ui 和 vi 之间有一条边。对于每个 queries[i] = [ui, vi],计算从节点 ui 到 vi 的路径中,使得路径代价为 奇数 的权重分配方式数量。由 "12234" 的子字符串形成的不同质数为 2 ,3 ,23 ,223 和 1223。返回这些质数的 总和 ,如果少于 3 个不同的质数,则返回 所有 不同质数的和。
2025-05-25 14:54:55
1195
原创 第 29 场 蓝桥·算法入门赛
然而,统帅的选择并非随意,而是有着特殊的要求:这两位统帅的能力值之和必须与剩余骑士的能力值之和保持相同的奇偶性。在「非哺乳动物星座联盟」的派对上,主持人突然宣布:"请在场的 12 星座中,名字里包含哺乳动物的立刻离场",结果白羊、金牛、狮子、摩羯 44 个星座红着脸拖着行李箱走了。2025 年,在狮子座最明亮的那一夜,草原上将举行一场庄严的仪式: N 头年轻的狮子从左到右排成一行,依次编号为 1 到 N,准备接受试炼。在一次盛大的星座大会上,各星座代表聚集在一起,讨论如何管理他们的星座力量。
2025-05-24 20:53:47
812
原创 力扣刷题合集(持续更新)
在过去一年的时间里, 我在力扣这个平台刷了很多很多的题, 后面就转战牛客, 蓝桥云课等竞赛平台了, 现在我以此篇文章来对力扣刷题做个总结。由于本人水平有限, 仅仅做经验分享 ,但还是希望这篇文章对你有所帮助, (语言的话, 这次就选择C++和Java, 但是本人很少用Java刷题, 因此会在题目中介绍的java的相关方法, 也就当学习了)学过面向对象都知道, 力扣是采用核心代码模式, 只用去实现对应类中的方法即可, 那我们直接开讲吧(由于题目可能会有很多, 所以就不贴题目, 只分享思路和代码)
2025-05-24 13:40:01
565
原创 力扣第450场周赛
这棵树由一个二维整数数组 edges 表示,长度为 n - 1,其中 edges[i] = [ui, vi, wi] 表示存在一条连接节点 ui 和 vi 的边,权重为 wi。计算每个整数的数位和:[1 + 8 = 9, 4 + 3 = 7, 3 + 4 = 7, 1 + 6 = 7] → [9, 7, 7, 7]计算每个整数的数位和:[2 + 2 = 4, 1 + 4 = 5, 3 + 3 = 6, 7 = 7] → [4, 5, 6, 7]根据数位和排序:[22, 14, 33, 7]。
2025-05-22 20:07:56
1004
原创 The 9th Hebei Collegiate Programming Contest
注:完成三题后你已经能稳铜奖了。注:完成四题后是稳银奖了。
2025-05-20 23:17:16
410
2
原创 第八届河北省大学生程序设计大赛
(其他细节,有时间再补充...)解题思路:统计不同于i的字符种数, 先用set或者map去重, 统计后输出即可。解题思路:将点分十进制转换成十进制整数进行判断。解题思路:用一个优先队列进行维护每个区间即可。解题思路:感觉像线段树,没写出来。解题思路:有时间再补。解题思路:有时间再补。解题思路:有时间再补。解题思路:有时间再补。解题思路:有时间再补。
2025-05-15 19:10:09
446
原创 力扣第156场双周赛
如果有多个元音或辅音具有相同的最高频率,可以任选其中一个。当你反转一个节点时,以该节点为根的子树中所有节点的值都乘以 -1。你的任务是对该数组执行若干次(可能为 0 次)操作,使得。你只能在一个节点与其他已反转节点“足够远”的情况下反转它。),那么它们之间的距离(它们之间路径上的边数)必须至少为。的辅音(除元音以外的所有字母),并返回这两个频率之和。如果不存在这样的路径,则返回。个节点的无向树,节点编号从 0 到。,并且其中一个是另一个的祖先(即。
2025-05-13 22:38:14
782
2
原创 牛客周赛 Round 92(再现京津冀蓝桥杯???)
例如,{2,3,1,5,4} 是一个长度为 5 的排列,而 {1,2,2} 和 {1,3,4} 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。例如,{2,3,1,5,4} 是一个长度为 5 的排列,而 {1,2,2} 和 都不是排列,因为前者存在重复元素,后者包含了超出范围的数。解题思路:由于陷阱只有一个, 从(1,1) 到 (n,m), 特殊情况一种是往右n-1步, 往下走m-1步, 另一种是往下走m-1步, 往右走n-1步, 陷阱最多只会出现在上述两条路径中的一条之中, 所以依次探测即可。
2025-05-12 16:15:45
934
原创 牛客练习赛138(首篇万字题解???)
j-> (0,5): f[j + 1][u] += f[j][v] 这条语句的含义是: 如果一个节点 Z 在子树 v 中,且与 v 的距离为 j(这样的节点有 f[j][v] 个),那么节点 Z 与 u 的距离就是 j+1。路径统计 (核心部分): 在从 dfs(v, u) 返回后,我们利用已经计算好的 f[][u](包含 u 自身以及 u 的 在 v 之前处理过的 其他子树的信息)和 f[][v](包含 v 的子树信息)来统计经过边 (u,v) 的路径。秒回答「对的」,在第 2,4,7,9,12,…
2025-05-11 15:09:56
984
3
原创 力扣第448场周赛
解题思路: 左上>左下>右下>右上,构造的网格是2^N*2^N, N=1时为2*2的网格,N=2时为4*4的网格...递归的进行划分即可, 2^N*2^N划分成4个子网格, 每个子网格大小为2^N-1*2^N-1大小,填充的时候我们就按 (左上>左下>右下>右上), 这个顺序进行填充每个子网格, 右上最小先填充右上, 递归参数分别为:(r, c)当前子网格的左上角坐标, size: 当前子网格的边长, or_grid: 当前子数组的起始填充数字, grid: 待填充的数组,
2025-05-05 23:40:53
1387
原创 力扣第447场周赛
这次终于赶上力扣的周赛了, 赛时成绩如下(依旧还是三题 ):1.给你一个正整数n,表示一个n x n的城市,同时给定一个二维数组buildings,其中表示位于坐标[x, y]的一个建筑。如果一个建筑在四个方向(左、右、上、下)中每个方向上都至少存在一个建筑,则称该建筑。返回的建筑数量。解题思路:题目描述的是一个建筑,在上下左右四个方向只要有建筑就行(不一定相邻)下面代码中提供了具体实现思路。
2025-04-30 21:51:50
1959
原创 牛客周赛 Round 91
另外如果两个数ai,aj的绝对差不为1,此时需要连边,eg: 1 3 5, 这就需要连3-1=2条(这就是为啥代码中结果count-1) , eg: 1 2 4 5 -> 连续的数字是(1,2)和(4,5), 不需要连边, 一共两个连通块,连接两个联通块需要1条边 eg: 1 1 3 3 ->没有连续的数字, 每个都是独立的联通块, 1:freq(2) 3: freq(2) , 一共4个联通块, 需要3条边。(即 n 的阶乘)的因子中随机等概地取一个数,则其是奇数的概率是多少,请你帮他算一算吧。
2025-04-29 22:20:10
1012
原创 牛客小白月赛115
每名角色只能被一名玩家选用,由小 E 先手,小 E 和小 P 轮流选择一名未被选用的角色加入己方阵营,直到所有的角色都被选用。当玩家 A 选择的某名角色能克制玩家 B 选择的某名角色时,玩家 A 的游戏舒适度 +1 ,当玩家 A 选择的某名角色被玩家 B 选择的某名角色克制时,玩家 A 的游戏舒适度 −1。当玩家 A选择的某名角色能克制玩家 B选择的某名角色时,玩家 A 的游戏舒适度 +1 ,当玩家 A 选择的某名角色被玩家 B 选择的某名角色克制时,玩家 A 的游戏舒适度 −1。
2025-04-29 15:13:27
1210
原创 基础算法合集-线段树
比如有一个数组【3,1,4,1,5,9,2,6】 ,我们要找到>=6的数, 我们就直接硬二分, 中间切一刀, 如果左侧有>=6的数, 那右侧就排除了, 如果左侧没有>=6的数, 那么只能去右半边找了。接下来就是, 找区间内的第一个>=X 的数, 并更新为 -1, 返回这个数的下标[注:递归的时候先比较左子树根节点, 再比较右子树根节点]1->2->4->8, 区间分别是[0,7]->[0,3]->[0,1]->[0,0], 此时l=r=0, mx[8]=3,左侧:【3,1,4,1】右侧:【5,9,2,6】
2025-04-25 23:38:49
1045
原创 基础算法合集-并查集
mp用于快速判断邮箱是否出现过,并帮助找到它第一次出现的账户,从而用并查集把这些账户合并在一起,归属到同一个人。这个 map<int, vector<string>> ms 主要用于在合并完账户后,按照每个合并后的用户收集他们的所有邮箱地址。
2025-04-23 20:10:18
1049
原创 基础算法合集-二分查找(三种写法)
34. 在排序数组中查找元素的第一个和最后一个位置 - 力扣(LeetCode)题目描述: 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值 target,返回 [-1, -1]。你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。
2025-04-23 19:06:19
502
原创 客流量上限
n有⌊logn⌋+1个二进制位, 我知道了a^1,a^2,a^4,a^8,....a^(2^logn)后, 只需要计算 logn+1 次乘法就可以了。快速幂和取模结合的话, eg: (3^13)%p=((3^8)%p*(3^4)%p*(3^1)%p)%p。对 n进行二进制拆分, 例如, 3^13=3^(1101)=3^8 * 3^4 * 3。a^n=a*a*a....a, 一个一个乘的话, 时间复杂度是O(n)的。对a做平方倍增, 例如, 3^1, 3^2 , 3^3....3^8。
2025-04-14 15:11:33
444
原创 力扣第272场周赛
这场周赛是在课堂上模拟的, 总体来说比较简单, 但不幸被老师压力了。以下分享一下我的解题思路如果你每天没有时间刷题的话, 可以看一下我写的东西, 我尽量讲解的通俗一些, 不会浪费你们太多的时间。
2025-04-11 18:42:41
951
原创 力扣第206场周赛
解题思路:根据题意我们知道, (i,j),(u,v), i与u的比i与j更亲近, u与i比u与v更亲近, 此时i就会不开心, pairs数组提供了配对, 我们要判断在这种配对下, 是否存在有人不开心。解题思路: 看示例3, 34 是不能通过排序得到43的,本题是一个贪心, 在实现上我们用一个前缀数组perfix去维护前j个元素中各个字符['0'-'9']出现的次数, 然后依次取出t中的各个字符, 对应到s中, 如果 S 中某个字符 c 前面有比 c(t中) 小的字符尚未被处理,则无法通过排序操作得到 t。
2025-04-11 16:22:26
857
原创 第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组
我模拟了一下, 分享一下我的做题感受和经验, 希望能对你有用这个比赛的时长是四个小时, 初赛的目标是拿到省一, 才有机会进入国赛我也不知道, 这个分能不能进国赛, 算了,不管了, 直接开讲, 我本人一般刷面试题比较多, 这种比赛题平常基本不怎么写。
2025-04-05 00:49:40
797
原创 SSM框架学习(Day-1)
再往上是数据访问层。我的理解是, 在容器中创建了一个bean, 你想要getBean一个对象, 然后调用相关的方法, 下一次你还想调用方法的话, 可以直接使用先前getBean的对象, 不用再创建一个新的Bean了。bean的作用范围: 在IOC容器中创建的bean, 默认是单列的(就是你getBean两个同一个实现子类, 他的引用(对象)是一样的), 如果想变成双列的, 就需要添加scope属性。id: bean的id, 使用容器可以通过id值获取对应的bean, 在一个容器中id值唯一。
2025-04-02 21:24:37
772
原创 星际旅行(去年蓝桥杯省赛b组-第7题)
边数 m 远小于完全图的边数 n(n−1)/2。本题中,m≤5n,即平均每个节点的度数不超过 10(因为 平均度数=2m/n≤10)。
2025-03-29 23:11:34
823
原创 查找单入口空闲区域[A卷-hw_od]
给定一个 m x n 的矩阵,由若干字符 ‘X’ 和 ‘O’构成,’X’表示该处已被占据,’O’表示该处空闲,请找到最大的单入口空闲区域。解释:空闲区域是由连通的’O’组成的区域,位于边界的’O’可以构成入口,单入口空闲区域即有且只有一个位于边界的’O’作为入口的由连通的’O’组成的区域。如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。
2025-03-22 15:54:59
316
原创 称砝码[A卷-hw_od]
对于每组测试数据: 第一行:n --- 砝码的种数(范围[1,10]) 第二行:m1 m2 m3 ... mn --- 每种砝码的重量(范围[1,2000]) 第三行:x1 x2 x3 .... xn --- 每种砝码对应的数量(范围[1,10])现有n种砝码,重量互不相等,分别为 m1,m2,m3…每种砝码对应的数量为 x1,x2,x3...xn。现在要用这些砝码去称物体的重量(放在同一侧),问能称出多少种不同的重量。可以表示出0,1,2,3,4五种重量。利用给定的砝码可以称出的不同的重量数。
2025-03-22 14:45:02
223
原创 查找重复代码[A卷-hw_od]
小明负责维护项目下的代码,需要查找出重复代码,用以支撑后续的代码优化,请你帮助小明找出重复的代码。重复代码查找方法:以字符串形式给定两行代码(字符串长度 1 < length <= 100,由英文字母、数字和空格组成),找出两行代码中的最长公共子串。状态转移: 如果当前s[i]==s[j] , dp[i][j]=dp[i-1][j-1]+1 否则dp[i][j]=0。考虑边界: dp[0][0]=0, dp[m][n]=答案。状态定义:dp[i][j]表示以i,j的结尾的最长子串。输出任一最长公共子串。
2025-03-22 13:14:24
483
1
原创 不等式是否满足约束并输出最大差/单词接龙(E卷-hw_od)
给定一组不等式,判断是否成立并输出不等式的最大差(输出浮点数的整数部分)要求:不等式系数为 double类型,是一个二维数组不等式的变量为 int类型,是一维数组;
2025-03-15 16:59:34
600
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人