- 博客(76)
- 收藏
- 关注
原创 牛客小白月赛119
现在你对每个豆腐人都问了相同的问题:“在你看见的这 n−1 个豆腐人中,最多有多少个豆腐人,它们的颜色是一样的?一个小队的总实力,等于队长战力的两倍,加上其余四个队员的战力之和。那么对于这被切了 k 次的段,多给你一次切一刀的机会,带来的减少量是 F(L,k)−F(L,k+1)。切完以后,把当前的减少量更新为 F(L,k+1)−F(L,k+2),然后在这些原始段内重新选减少量最大的段,进行下一次切割。三个量 k,r,p 分别代表切割出的最小段的长度、切出长度为 k+1 的段数量、切出长度为 k 的段数量。
2025-07-11 18:20:20
719
原创 AtCoder Beginner Contest 413
两种操作, 一种是在A的尾部添加c个x, 另一种是移除A的前k个元素, k的值不能超过A的长度, 同时输出这个k个元素的总和,使用deque维护这个数组A, 然后t=1/2进行操作即可。选择两个整数 a,b,满足区间 [a⋅2^b,(a+1)⋅2^b−1] 在数组范围内,把这个区间反转。如果有一条线能将(1,1)和(H,W)在网格中分割成两个独立的块, 两点就无法形成通路。4. 一般情况通过 b[i]^2 = b[i-1]*b[i+1]进行判断。
2025-07-10 19:09:19
624
原创 牛客周赛 Round 98
选择元素:从1到剩余和(n - sum)中选择一个不等于前一个元素的数,继续递归。参数包括目标和 n,当前路径 p,当前和 sum,以及前一个元素 pre。解题思路:如果给定的数是偶数, 由于1是任意正数的因子, 偶数+1=奇数。解题思路:先求gcd(x,y), 然后根据三角形的性质进行判断。终止条件:当当前和等于 n 时,将当前路径加入结果集 ans 中。若给定的数是奇数, +1/+自身, 都变成了偶数。中间字符r只要替换为前后都不同的即可。
2025-07-04 18:40:07
234
原创 Codeforces Round 1034 (Div. 3)
也就是说,使数组只包含一个元素,即a。将您的答案输出为长度为n的二进制字符串,如果存在将a转换为[ai]的序列,则第i个字符为1,否则为0。如果 cnt > k 且 n ≥ 2*k,Bob 总能维护至少一个额外的 1,并总能抵消 Alice 的操作 —— 赢。在一个操作中,您可以选择a的非空前缀*并将其替换为其最小值,或者选择a的非空前缀*并将其替换为其最大值。最多为n-1 (1之前每个数字次数剩1个,1后面全删了,最后剩1个数字,删除n-1个)eg: 数组 [1, 3, 5, 4, 7, 2],输出。
2025-07-03 18:55:49
1152
原创 前端框架前置-相关知识学习
-----------------------------------------------------------------------------------------------需求:新建login-bug分支,做两次提交记录(对手机号长度,验证码长度做判断)------------------------------------------------------------------------------------------------优化-CDN使用。
2025-07-01 01:29:06
850
原创 VUE 2+3
div class="box":style="{CSS属性名1:css属性值,css属性名2:css属性值}"></div><input type="radio" name="gender" value="1">男。<input type="radio" name="gender" value="2">男。<div class="box" :class="{类名1:布尔值,类名2:布尔值}"></div>//el:'#app',作用:和$mount('选择器')作用一致,用于指定Vue所管理容器。
2025-07-01 01:21:41
365
原创 HTML/CSS基础
/table> table>tr*2>td{内容}*3 align是居中的意思 <table border="1" width="400" cellspacing ="0" cellpadding="10" align="center">操作): 1.不会独占一行,与相邻的行政元素占同一行,直到行占满。格式如下:<input type="test" name="test" placeholder="请输入一个数字” vale="100" minlength="3" maxlength="6">
2025-07-01 01:11:21
354
原创 基础算法合集-图论
单源最短路径问题(用来计算一个点到其他所有顶点的最短路径)1. 初始化: 先找出从源点V0到各终点Vk的直达路径(V0,Vk), 即通过一条弧到达的路径2. 选择: 从这些路径中找出一条长度最短的路径(V0,u)3. 更新: 然后对其余各条路径进行适当的调整若在图中存在弧(u,Vk), 且(Vo,u,Vk)<(Vo,Vk), 则以路径(Vo,u,Vk) 代替(Vo,Vk)4. 把V分成两组:(1) S: 已求出最短路径的顶点的集合。
2025-07-01 00:03:11
848
原创 基础算法合集-埃氏筛/欧拉筛
讲解: 从小到大枚举每个数, 如果当前数没划掉, 必定是质数, 记录该质数;枚举当前质数的倍数, 必定是合数, 划掉合数。对于100%的数据,n=10^8, 1<=q<=10^6, 保证查询的素数不大于n。An表示1,2...n的最小公倍数, 求L...R的中不同数的个数。第一行包含两个正整数n, q, 分别表示查询的范围和查询的个数。若i是合数, 则最多枚举到自身的最小质数中断。1. 如果当前数没划掉, 必定是质数, 记录该质数。2. 枚举已记录的质数(如果合数已越界则中断)时间复杂度:O(n)
2025-06-30 15:35:47
260
原创 AtCoder Beginner Contest 412
序列 (AL,AL+1,…,AR) 中不同的值的数量, 等于 An 在 n∈[L,R] 中发生变化的次数加 1(初始的 AL)。例如:A6=LCM(1,2,3,4,5,6)=60=A5(因为 6 = 2 × 3,而 2 和 3 已经在 A5 中)。An 的值会变化(即 An>An−1)当且仅当 n 引入了新的质因子或新的质数的高次幂。因为 n 是新的素数,之前 An−1 中不包含 n,所以 An=An−1×n。An的变化次数=区间(L,R]内素数的数量+区间(L,R]内质数高次幂的数量。
2025-06-29 22:01:02
710
原创 力扣第455场周赛
输入: n = 3, k = 2, m = 3, time = [2,5,8], mul = [1.0,1.5,0.75]输入: n = 2, k = 1, m = 2, time = [10,10], mul = [2.0,2.0]输入: n = 1, k = 1, m = 2, time = [5], mul = [1.0,1.3]输入: n = 3, edges = [[0,1],[0,2]], cost = [2,1,3]由于船每次只能载一人,因此无法将两人全部渡河,总会有一人留在营地。
2025-06-27 21:51:33
928
原创 力扣第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
1038
原创 牛客2025年儿童节比赛
这个G, 比赛的时候我看好多人都过了,我一直认为是child,这个badge是什么东西啊。对了,后面半个月就不更新了(其实是期末周了), 暑假有机会再更新。吐槽:这个A还要去出题人的主页找线索, 太离谱了吧。补充:力扣周赛还有一篇文章, 应该明天会发。
2025-06-01 21:35:23
324
原创 用JS实现植物大战僵尸(前端作业)
图片包含:植物cd好的状态和冷却期的状态,植物空闲状态/攻击状态,僵尸包含移动状态/攻击状态/樱桃炸弹炸的效果, 同时我们提供对外的imageFromPath函数, 用来生成图片路径。只对JS中常见的DOM/BOM和基础语法进行巩固,后续的CSS代码和相关图片资源也会上传。左侧卡片:当我们使用了一个植物后,它的状态就会改变, 类似于进入到冷却时间。为植物和僵尸设置不同状态下的动画效果。
2025-05-31 23:06:34
2933
6
原创 牛客小白月赛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
1032
原创 牛客周赛 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
737
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
900
原创 力扣第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
1203
原创 第 29 场 蓝桥·算法入门赛
然而,统帅的选择并非随意,而是有着特殊的要求:这两位统帅的能力值之和必须与剩余骑士的能力值之和保持相同的奇偶性。在「非哺乳动物星座联盟」的派对上,主持人突然宣布:"请在场的 12 星座中,名字里包含哺乳动物的立刻离场",结果白羊、金牛、狮子、摩羯 44 个星座红着脸拖着行李箱走了。2025 年,在狮子座最明亮的那一夜,草原上将举行一场庄严的仪式: N 头年轻的狮子从左到右排成一行,依次编号为 1 到 N,准备接受试炼。在一次盛大的星座大会上,各星座代表聚集在一起,讨论如何管理他们的星座力量。
2025-05-24 20:53:47
832
原创 力扣刷题合集(持续更新)
在过去一年的时间里, 我在力扣这个平台刷了很多很多的题, 后面就转战牛客, 蓝桥云课等竞赛平台了, 现在我以此篇文章来对力扣刷题做个总结。由于本人水平有限, 仅仅做经验分享 ,但还是希望这篇文章对你有所帮助, (语言的话, 这次就选择C++和Java, 但是本人很少用Java刷题, 因此会在题目中介绍的java的相关方法, 也就当学习了)学过面向对象都知道, 力扣是采用核心代码模式, 只用去实现对应类中的方法即可, 那我们直接开讲吧(由于题目可能会有很多, 所以就不贴题目, 只分享思路和代码)
2025-05-24 13:40:01
587
原创 力扣第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
1016
原创 The 9th Hebei Collegiate Programming Contest
注:完成三题后你已经能稳铜奖了。注:完成四题后是稳银奖了。
2025-05-20 23:17:16
438
2
原创 第八届河北省大学生程序设计大赛
(其他细节,有时间再补充...)解题思路:统计不同于i的字符种数, 先用set或者map去重, 统计后输出即可。解题思路:将点分十进制转换成十进制整数进行判断。解题思路:用一个优先队列进行维护每个区间即可。解题思路:感觉像线段树,没写出来。解题思路:有时间再补。解题思路:有时间再补。解题思路:有时间再补。解题思路:有时间再补。解题思路:有时间再补。
2025-05-15 19:10:09
451
原创 力扣第156场双周赛
如果有多个元音或辅音具有相同的最高频率,可以任选其中一个。当你反转一个节点时,以该节点为根的子树中所有节点的值都乘以 -1。你的任务是对该数组执行若干次(可能为 0 次)操作,使得。你只能在一个节点与其他已反转节点“足够远”的情况下反转它。),那么它们之间的距离(它们之间路径上的边数)必须至少为。的辅音(除元音以外的所有字母),并返回这两个频率之和。如果不存在这样的路径,则返回。个节点的无向树,节点编号从 0 到。,并且其中一个是另一个的祖先(即。
2025-05-13 22:38:14
799
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
943
原创 牛客练习赛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
997
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
1398
原创 力扣第447场周赛
这次终于赶上力扣的周赛了, 赛时成绩如下(依旧还是三题 ):1.给你一个正整数n,表示一个n x n的城市,同时给定一个二维数组buildings,其中表示位于坐标[x, y]的一个建筑。如果一个建筑在四个方向(左、右、上、下)中每个方向上都至少存在一个建筑,则称该建筑。返回的建筑数量。解题思路:题目描述的是一个建筑,在上下左右四个方向只要有建筑就行(不一定相邻)下面代码中提供了具体实现思路。
2025-04-30 21:51:50
1973
原创 牛客周赛 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
1060
原创 牛客小白月赛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
1220
原创 基础算法合集-线段树
比如有一个数组【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
1056
原创 基础算法合集-并查集
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
508
原创 客流量上限
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
448
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人