- 博客(33)
- 收藏
- 关注
原创 2435. 矩阵中和能被 K 整除的路径(leetcode每日一题)
memo[i][j][k]表示到i j k 为止 最终余数会为0的路径数目,记忆化搜索一下即可。
2025-11-26 11:25:00
165
原创 leetcode 第170场双周赛
如果前一段是下降(比较值为负),而当前数字相对上一个数字是上升(比较值为正),这会形成一个“谷”。反之若前一段是上升(比较值为正)而现在变成下降(比较值为负),就形成一个“峰”。时,当前位置的数字不仅触发一个峰或谷,还会把从这里开始所能形成的全部合法数字计入贡献——因为每一条延伸下去的路径都继承了这个反转点。把“趋势变向”和“贡献外溢”这两件事理顺,整个 DP 的结构就清晰了,之后的实现只剩下状态过渡和边界处理。时,能得到的“总峰谷贡献 + 可形成的合法数字数量”。暴力比较,统计一下就好。
2025-11-25 11:14:41
537
原创 Codeforces Round 1065 (Div. 3)
位运算 假设XOR(a)为数组a的异或值 如果a[i]和b[i]进行交互 实际等同于XOR(a) ^ a[i] ^ b[i]单调栈合并到最后只有一个元素即视为Yes,注意每一个元素入栈后,值应该更新 为区间的最小值。单调栈合并到最后只有一个元素即视为Yes,注意每一个元素入栈后,值应该更新为区间的最小值。数组元素当且仅当a[j] > a[i] && j > i时才能视为一条合理的边。数组元素当且仅当a[j] > a[i] && j > i时才能视为一条合理的边。2. 数组中某一个元素的值 +1。
2025-11-24 14:50:31
657
原创 2589. 完成所有任务的最少时间(leetcode随心一题)
注意有一个懒更新的思想,每一个node节点都有一个lazy标记,查询和更新操作下一层子节点之前,需要判断当前node是否有lazy标记,如有,需要及时更新 子节点的值,再去做查询和更新操作。主要是学习动态开点线段树怎么写,自顶向下查询即可. 如果查询区间包含了当前node的l和r则直接返回数据,否则二分之后继续递归查询。更新也是一样的逻辑,如果当前区间已经包含了 当前的l和r则直接更新当前区间即可。
2025-11-20 12:12:10
357
原创 757. 设置交集大小至少为2 (leetcode每日一题)
注意有一个懒更新的思想,每一个node节点都有一个lazy标记,查询和更新操作下一层子节点之前,需要判断当前node是否有lazy标记,如有,需要及时更新子节点的值,再去做查询和更新操作。主要是学习动态开点线段树怎么写,自顶向下查询即可. 如果查询区间包含了当前node的l和r则直接返回数据,否则二分之后继续递归查询。更新也是一样的逻辑,如果当前区间已经包含了当前的l和r则直接更新当前区间即可。
2025-11-20 12:11:02
307
原创 2654. 使数组所有元素变成 1 的最少操作次数(leetcode每日一题)
如果nums中没有1 只要gcd(a…)为1 则len + min(gcdLen) - 2。如果nums中有1 则最少操作次数为len - cnt(1)
2025-11-12 10:01:56
220
原创 3542. 将所有元素变为 0 的最少操作次数(leetcode每日一题)
简而言之,如果相同值的元素之间没有比它更小的值,即可视为是依次归零操作,求所有元素归零最少需要几次操作。
2025-11-10 15:49:46
185
原创 leetcode双周赛169
简单理解,数组nums中的元素可以变形为-1和1,只需要子序列的总和大于0则符合条件,所以题目变形为,给定一个前缀数组pre,求所有i的pre[i]的逆序对总和。前后缀分离,枚举i即可。
2025-11-10 12:06:02
493
原创 Codeforces Round 1050 (Div. 4)
题目限制所有数组的元素总数量不超过2e5,底端元素可以划分为N个区间,每一个区间确定好了之后,N个数组都只需要关注截断区间之后的元素即可。题意有点绕,总之找出前缀数组中所有的因子出现的频率,合理的答案为不等于数组此时长度的因子频率的最大值。每一个合理的窗口都视为 a[r]为尾端 能够产生的所有合法子数组,即数量为(r - l + 1)N个数组左对齐叠放,最终会受到重力影响,悬浮在空中的元素会掉下低端,无限制拜访这N个数组。题意比较啰嗦,总之需要确保子数组的元素出现频次低于求出来的阈值,滑动窗口过一遍即可。
2025-11-05 18:40:50
632
原创 Leetcode (3321. 计算子数组的 x-sum II)
当我们需要添加一个元素 num 时,我们获取它出现的次数 occ,如果 occ>0,将 (occ,num) 从有序集合中移除,并将 (occ+1,num) 加入有序集合。当我们需要删除一个元素 num 时,我们获取它出现的次数 occ,将 (occ,num) 从有序集合中移除,如果 occ>1,并将 (occ−1,num) 加入有序集合。维护两个红黑树 large and small large表示前x个权值最高的pair (频率,数字大小) small表示其余的pair。
2025-11-04 18:23:44
217
原创 Codeforces Round 1062 (Div. 4)
题意太长,总之反向思考,获取数组中的非递减序列,求序列的最大权值。只要数组中同时存在奇数和偶数就可以任意换,其实就是排序一下即可。题意太长,总之需要考虑清楚每一个节点成为LCA的贡献次数。需要考虑到x的最小值一定是一个质数。题意太长,总之二分加上特殊处理即可。
2025-11-04 16:25:41
855
原创 LeetCode 1388. 3n 块披萨
首先题目意思转换成数组挑选n个不相邻的数字,求最大值。这是一个简单的二维dp,并且首元素和尾元素不可同时取,此时可以两遍dp,第一遍不考虑首元素,第二遍不考虑尾元素即可。请你返回你可以获得的披萨大小总和的最大值。每一块披萨的大小按顺时针方向由循环数组。
2023-08-18 20:59:48
177
1
原创 Codeforces Round #520 (Div. 2)
B. MathB就是要找n这个数的所有质因子 将所有出现过的质因子都乘一次就可以得出正确至于操作次数ans则分为4种情况来讨论 n可以进行n=sqrt(n)或者n=n*x(x为任意正数)这两种操作的任意一种唯一值得注意的是 判断一个数n的log2(n)是不是整数可以采取如下方法:bool f(int x){ if((x&(x-1))==0) return t...
2018-11-15 17:29:23
156
原创 Apple Catching POJ - 2385
It is a little known fact that cows love apples. Farmer John has two apple trees (which are conveniently numbered 1 and 2) in his field, each full of apples. Bessie cannot reach the apples when they a...
2018-04-27 20:41:23
136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅