- 博客(9)
- 收藏
- 关注
原创 线段树学习记录
最近主播在学习线段树,遇到了许多问题,通过查阅很多资料,思考后,一一解决了,于是便想整理一篇文章。一是为了自己加强理解,二是为了帮助大家少走一些弯路。闲言少叙,书归正传,让我们开始奇妙的线段树之旅吧!
2025-06-04 22:01:30
1004
原创 Codeforces Round 799 (Div. 4) VP
解题思路:首先需要删除的元素个数就是原数组长度-去重后的数组长度,然后判断需要删除的个数是奇数还是偶数,如果是奇数,结果就是去重数组长度,如果是偶数,结果就是去重数组长度-1。解题思路:简化题意就是我们可以选择一个数字a,让数组中等于a的变成1,不等于a的变成-1,然后求出最大子段和,暴力解法枚举a,再求一遍最大子段和,复杂度为O(n^2)。解题思路:首先原数组的和为sum,然后需要前后缀和凑出sum-m,我们可以遍历前缀,然后通过二分找到第一个满足要求的后缀,最后记录答案i+n-l+1。
2025-05-13 17:15:03
638
原创 Codeforces Round 790 (Div. 4) VP
解题思路:先把出现次数>=m的从小到大单独拎出来,再从这些数字中判断每个数字是否和前面差一,这类问题最好单独拎出来符合条件的,这样可以方便后面判断,否则需要处理很多边界条件。可以先遍历树,求出前缀和数组,再判断哪些点的前缀和为0,注意这题要邻接矩阵建图,否则会爆空间。解题思路:要想吃最少的糖果数量让糖度达到x,只需要从糖度高的往后吃,所以可以先对原数组降序求一次前缀和,再通过二分找到第一个>=x的位置。解题思路:要让所有糖果数量相同,又只能减少,那就只能贪心的去想让所有糖果数变成最小值。
2025-05-13 14:07:21
370
原创 Codeforces Round 806 (Div. 4) VP
解题思路:其实这是一道诈骗题,因为有一个限制:ai<i<aj<j,其中i、j表示下标,不会超过n,也就是不会超过1e5,所以可以直接用哈希表维护 ,先把数组中ai>=i的元素去掉,然后再找前面<ai的元素个数。解题思路:想要找到两个字符串sj、sk拼接起来等于si,只需要遍历si的前后部分,判断前后部分是否同时出现过即可。解题思路:贪心就是先进行1操作购买钥匙,然后再不购买钥匙,所以可以枚举购买最后一把钥匙的分界点,然后求最大值即可。考察算法:前缀和,哈希表。考察算法:贪心、前缀和。考察算法:贪心、模拟。
2025-05-07 16:26:26
456
1
原创 Codeforces Round 1022 (Div. 2) A~C
考虑每个机器人按的权值是单调不升或不降的,且可以向左向右移动,所以统一考虑成单调不降即可,当出现一个联通区域(大于>=3)出现了谷底时,则需要再加上一个机器人。分类讨论,下面注释写的很清楚了,特殊考虑一下x=0和 x=1的情况即可。
2025-05-02 11:56:57
605
3
原创 Educational Codeforces Round 178 (Rated for Div. 2) A~E
基本思路:简化一下题意,就是让我们求后缀和,但唯一一点就是我们可以移动前i个数字中的最大值把第i个数字替换掉(它被左移了),所以这时只需要求出maxx[i]前缀最大值+s[i]后缀和,判断一下a[i]>maxx[i-1],若满足,则不移动,直接输出s[i],若不满足,则移动,输出s[i]-a[i]+maxx[i-1]基本思路:因为每一张牌都可以重复打出,所以说只要第一局有人胜利,那么他就可以重复打这张必胜牌,所以说我们只需要考虑第一局是谁获胜即可,很容易想到当最后一张和第一张都被Alice拿到,则他必胜。
2025-04-29 15:53:50
519
原创 牛客周赛 Round 91
考察算法:模拟没什么好说的,创建字符串"while",比对不同字符个数。考察算法:前缀和、滑动窗口前缀和+滑动窗口求最大的长度为十的区间和,特判一下长度不足十的。考察算法:思维要使a[i]+a[j]最大,且i<j,就取j前面最大的数字,然后判断一下a[j]>a[i],再取最大值即可。考察算法:哈希表。
2025-04-28 10:35:37
733
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅