- 博客(34)
- 收藏
- 关注
原创 力扣 : 781. 森林中的兔子
同一个数字的可以分为一组 , 3就是有3个人和我自己相同 也就是4个人,所以相同的数字可以分为 / (num+1) 向上取整。
2025-05-07 14:13:33
177
原创 力扣 : 2449. 使数组相似的最少操作次数
2 -2 奇偶性不变 , nums里一个奇数一定对应一个target奇数 一个偶数一定对应一个target 偶数。奇数和偶数分组排序,一一对应的nums和target 找到差值 除4。
2025-05-05 10:33:26
314
原创 P5937 [CEOI 1999] Parity Game 题解
区间个数——> 前缀和 转化为 差分数组 求区间就变为 num = pre[r] - pre[l-1]。并查集只存同号的数 , 将同号的数划为一个集合。前面存原本的数x,x+len是x对立面。当num 为奇数: pre[l-1] 和 pre[r] 异号。看注释 , 要搞清楚 ll 和 rr 在奇数偶数时的关系。差分数组+并查集(拓展域) + 离散化。奇数对立面为偶数 , 反之如此。我们只看下标,来代替pre。当num为偶数时:同号。
2025-05-04 12:40:55
179
原创 大根堆+小根堆 问题
思路: 每次将新元素放入大根堆 , 需要k个,则我们让小根堆从大根堆中拿元素,直到小根堆元素为k,取top()顶值即为当前第k个,在把当前第k个放回大根堆(下一次还需比较,因为下一个值可能比他大)在算法比赛中,我们会遇到一类问题就是,每次求数列中的第几的数字。P7072 [CSP-J2020] 直播获奖 - 洛谷。我们可以使用 大根堆 + 小根堆 优化实现 ,P1168 中位数 - 洛谷。P1801 黑匣子 - 洛谷。
2025-05-04 12:40:28
402
原创 P4552 [Poetize6] IncDec Sequence 题解
if diff < 0 , 可以给sub[1] 减去(1 - diff) 还要+上原来的sub[1]if diff > 0 , 可以给sub[1] 加(1 - diff) 还要+上原来的sub[1]种类数:此时diff = abs(sum_p - sum_n ) 剩下不可用。sub[1]是多少整个数组最后就是多少 , 所以有 diff +1 种。构建差分数组:sub 我们要让除了sub[1] , 其他全是0。一对正负数消掉的,需要自己消掉的数。一个数+1 / -1。
2025-05-03 10:01:14
458
原创 牛客周赛 Round 86 —— 题解
gcd(x,y) -> gcd ( gcd(x,y) , x) ^ gcd(x,y) == 0 或 gcd ( gcd(x,y) , y) ^ gcd(x,y) == 0。重点: 倒数第二次合并要特判 , 因为只剩下三个数 , 当前 a[i] 也需要合并进去 , 剩下两个数。枚举 一个数 前 长度不大于k的一段数之和 pre , 后 长度不大于k的一段数之和 suf。注意: 我们一个数的左右都是可以合并的 , 比如 左合并2个 , 右合并4个 也可能最优。因为任意两个数 , x , y。
2025-03-24 10:55:21
612
原创 力扣 : 45. 跳跃游戏 II
跳到[1] , 也就是2 , 它下一步可以跳到 下标 2+[1] = [3]跳到[2] , 也就是3 , 它下一步可以跳到 下标 3+[2] = [5]跳到[3] , 也就是0 , 它下一步可以跳到 下标 0+[3] = [3]就选 跳到[2] , 这样可以跳的最远,下一次选择的机会也多。贪心找可以跳的范围里 这些点最远可以跳到哪里 , 跳的越远选择机会越多。用next记录 可以跳的范围内 最远可以跳到哪里。从[0] 开始 : 可以跳到 3。
2025-03-08 23:49:36
224
原创 力扣 : 1326. 灌溉花园的最少水龙头数目
在可以到达的点里,找最大距离;当覆盖不了cur下一个点时,就说明无法覆盖cur.1 cur.2。注意一定要全面覆盖 包括2 - 3 之间的 2.1,2.3。因为可以覆盖左右 , 所以用一个right数组记录每个区间。
2025-03-05 15:24:02
169
原创 洛谷 :P2089 烤鸡
答案条件: 10个数必须是1或2或3 , 所以i(计算加了多少个数) i==10 and sum==n 就记录一个答案。数组t负责记录当前sum由那些数相加而得 , 所以每次递归完,要pop回溯。暴力递归: 3*10 不会超时。
2025-03-05 15:23:35
339
原创 2025/1/11 第25场蓝桥入门赛 题解
当不包含1时: mex都是1 , 有 1+ 2 + ...... +(n-1) 种 ,等差数列求和。从n开始统计: n -> n-1 之间有多少个数,这些数都是要放后面的(都是小数)当子数组只有一个数字时(即每个数字): 除了单独的1,mex是2 , 其他都是mex都是1。思路:从大到小排序,求每两个相邻房间的差值 , 滑动窗口求m-1个差值最小,即为答案。思路:先计算最多能匹配几组(z),再判断剩下的人数(p)是否能满足k人;
2025-01-11 22:54:14
676
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人