codeforces刷题
文章平均质量分 68
9527过了头
后知后觉努力中
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
B. Make It Permutation(Codeforces Round 1030 (Div. 2))
摘要:该算法针对Codeforces Round 1030 D2题,通过不超过2n次操作实现矩阵翻转。核心思路是对每行进行两次翻转,第一次翻转1到i列,第二次翻转i+1到n列,最后再处理第n行。通过这种策略,确保每列元素不重复,同时满足题目要求的操作次数限制。时间复杂度为O(n),适用于大规模数据。(127字)原创 2025-08-19 11:31:21 · 373 阅读 · 0 评论 -
B. Taxi、B. Interesting drink、B. Fence
本文介绍了三个算法题的解题思路与实现代码:1)《B.Taxi》使用双指针法对乘客分组,每辆车最多载4人;2)《B.Interestingdrink》通过排序和二分查找确定每日预算能购买的商品数量;3)《B.Fence》利用前缀和寻找高度和最小的k块连续木板。三题均采用高效算法(双指针、二分查找、前缀和)解决问题,代码实现简洁高效。原创 2025-08-12 15:47:33 · 231 阅读 · 0 评论 -
A. Color
摘要:本文提出了一种解决染色问题的贪心算法。算法首先去除数组两端与目标颜色i相同的部分,然后将中间部分全部染成i色,此时总代价为W[i] + (r-l+1)。接着检查中间是否存在连续的i色片段,若片段长度大于W[i],则保留该片段更优,可减少(p[i][j]-W[i])的代价。实现时使用二维数组存储各颜色的连续段长度,排序后从大到小处理。该算法通过权衡染色与保留原色的成本差异,实现了最优解的求解。原创 2025-06-22 17:00:24 · 260 阅读 · 0 评论 -
C. Bertown Subway
摘要:题目要求通过交换车站连接关系中的两个数,使车站间的可达性最大化。分析发现车站连接会形成环,环中可达数量为环长度的平方。解题思路是将两个最大长度的环合并,使可达数量达到(a+b)^2。代码实现时先找出所有环的长度,排序后将两个最大环合并计算,其余环单独计算平方和。最终结果为最大两环合并的平方加上其他环的平方之和。时间复杂度主要由排序决定。原创 2025-06-18 20:51:53 · 369 阅读 · 0 评论 -
C. Cherry Bomb
题目解析了数组处理中的三种情况:当数组a或b中存在超过k的值时输出0;当{b[i]}数对唯一或所有数对和相同时输出1;当所有b[i]均为未知时,根据a数组的最大最小值与k的关系计算输出结果。代码实现中通过遍历数组检查边界条件,分别处理这三种情况,并输出相应结果。算法复杂度为O(n),适用于多组数据输入测试。原创 2025-06-13 15:39:00 · 362 阅读 · 0 评论 -
C. Need More Arrays
(2)如果a1 + 1 < a2,则a2被写到一个新数组,否则,a2被写到和a1相同的数组。(3)如果a2 + 1 < a3.,a3被写到新数组,否则,写到和a2相同的数组。(2)不满足就接着往下遍历===等于是删除了这个元素(因为删除还有可能使得时候的满足条件)我的任务是删除数组中的元素,使得删除后数组经过这个算法创建更多的数组。(1)a1被写入一个新数组。依次类推,知道最后。给了一个长度为n的递增的数组a。(1)如果满足条件就总和加一。原创 2025-06-10 11:11:45 · 249 阅读 · 0 评论 -
A. Greedy Monocarp
There are n chests(箱子);原创 2025-06-09 20:28:56 · 386 阅读 · 0 评论 -
Codeforces Round 1028 (Div. 2)A题
摘要:题目描述Gellyfish和Flower进行回合制战斗,双方分别拥有角色HP和骑士HP。奇数回合Gellyfish攻击,偶数回合Flower攻击,攻击可选择攻击对方角色或骑士。游戏持续到一方角色HP归零。通过分析双方最优策略,当Gellyfish的最小攻击目标值(min(a,c))大于等于Flower的(min(b,d))时Gellyfish获胜,否则Flower获胜。代码实现直接比较双方最小攻击值进行胜负判断。原创 2025-06-01 10:39:41 · 600 阅读 · 0 评论 -
D. Mishkin Energizer-Codeforces Round 1014 (Div. 2)
对于左边情况如果说字符‘T’的数量多于字符‘I’的数量,则可以像这样一样满足题目操作条件的增加L和I的数量,来“减少”T的数量,要想减少一个T的数量则增加一对I和L。对于右边情况如果说字符‘I’的数量多于字符‘T’的数量,则可以像这样一样满足题目操作条件的增加I和T的数量,来“减少”I的数量,要想减少一个I的数量则增加一对I和L。输入一个长度为n的字符串,要求在字符串中,通过在两个不相同的字符中间添加另外一个字符来改变其中三个字符的数字来实现三个字符数相同。灵活使用动态数组的扩容函数。原创 2025-04-01 22:01:02 · 965 阅读 · 0 评论 -
C. Asuna and the Mosquitoes-Codeforces Round 1014 (Div. 2)
然而,如果要想使得自己保持偶数,就可以使得操作的对面的数减少到1就停止,自己还就是偶数,然后就能去接着操作其他奇数。如果后面还有其他偶数的话可以选择一个1把自己变成奇数去操作其他的偶数。我们使用这个规律并且通过整理分析数据得到,最后除了最大值有k-1个1,其他都是0,且最后的最大值为。操作:因为相加是奇数才能进行操作,所以只有一个奇数和一个偶数之间能够进行一个加1和一个减1操作。(1)如果全部都是偶数或者都是奇数则不能进行操作,直接输出数组中的最大值。加到自己身上,使得自己变成奇数。原创 2025-03-31 00:21:27 · 1891 阅读 · 0 评论 -
B. Lady Bug -Codeforces Round 1014 (Div. 2)
以上述图为例,红色线构成了一条路线,1的数量就不能超过2,并且蓝色路线上1的数量就不能超过3。我们利用这个规律来编写代码。因为交换次数是无限的,只要位置满足“要求通过将字符串中的数全变成0。”就能够交换,因此如果字符b中的位置中能够。i的取值范围为[2,n]交换路径上的所有的“1”就行。原创 2025-03-30 21:44:29 · 1135 阅读 · 0 评论 -
C. Two Colors-Educational Codeforces Round 176 (Rated for Div. 2)
(3)假设第一部分要达到的木板颜色数量为i,则第二部分为n-i。第一部分的的数量为数组a中>=i的种类数量,第二部分为数组a中>=n-i的种类数量。(4)然而,题目要求必须是两种不同的颜色,上述我们思路中包含了前后两部分相同的情况,因此需要减去。的最小值的地址,而前面(a+m)则数组最后一个元素再向后一个元素的地址,相减的话就能得到大于等于i的元素数量。我们减去满足这种情况的所有数量就能得到这种i下的所有排列数量。来给栅栏的n个木板染色,且颜色相同的木板是。,返回的是指针,即返回的是大于等于。原创 2025-03-29 14:10:52 · 935 阅读 · 0 评论 -
B. Array Recoloring-Educational Codeforces Round 176 (Rated for Div. 2)
这种情况是最后一个染色点要么是最左边的,要么是最右边的,另外一个最大值(及刚开始就选的最值)则是最左边的右边的n-1个点中的最大值,要么就是最后边的点的左边的n-1个点中的最大值。:这种情况是无论如何都能够使得最先染的k个点和最后一个点是最大的k+1个点,因此我们从进行排序,直接累加得到最大的k+1个数的和。(3)我们需要遵守染色的规律并且得到最先染色的前面k个点的值和最后染色点的值的总和。(2)将数组中所有的数看作点,所有的点都是红色的。=>因此需要去分析什么情况下值是最优的(根据染色的规律)。原创 2025-03-29 00:11:27 · 736 阅读 · 0 评论 -
1931C. Make Equal Again
2.当数组中有不同元素时。定义k1和k2分别来计数从前往后和从后往前连续相同元素的个数,利用for循环求出,期间分别定义flag1和flag2用来判断是否相同的数不再连续,不再连续后续k的值不再改变。1.如果数组中元素全部一致或者只有一个元素直接输出0。(定义一个flag来标记数组中是否全部一致)2.逐个输入t个测试项,第一行包含数组中元素的个数,第二行逐个输入元素。=a[n],输出n-max(k1,k2)。(1)a[1]==a[n],直接输出n-(k1+k2);使得数组全部元素变成一致的最小的元素个数。原创 2024-06-14 10:02:08 · 351 阅读 · 0 评论 -
A. Problem Generator
A. Problem GeneratorVlad is planning to hold m rounds next month. Each round should contain one problem of difficulty levels 'A', 'B', 'C', 'D', 'E', 'F', and 'G'.Vlad already has a bank of n problems, where the i-th problem has a difficulty level of ai. T原创 2024-06-13 10:11:45 · 1112 阅读 · 0 评论 -
B. 378QAQ and Mocha‘s Array----codeforces
3.将不能被整除的数加入到动态数组中,然后对动态数组进行排序,如果数组中所有的数能够被最小的数值整除那就输出Yes,否则输出No。2.对输入的数组进行排序,如果其余的所有数能够被最小的一个数值整除,那就输出Yes。1.如果数组中有1那就直接输出Yes。原创 2024-06-12 23:50:27 · 183 阅读 · 0 评论
分享