自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 收藏
  • 关注

原创 第471场周赛 3714. 最长的平衡子串 II

题目要求找出由'a','b','c'组成的字符串s中最长的平衡子串长度(平衡子串指所有不同字符出现次数相同)。解题采用分组处理策略:1)处理单一字符子串;2)处理两种字符子串时,通过差值状态记录位置;3)处理三种字符子串时,使用二维状态(a-b,b-c)来检测重复状态。利用哈希表存储首次出现状态的位置,当状态重复时更新最大长度。该方法通过状态压缩和哈希表有效解决了平衡子串的检测问题。

2025-10-13 15:38:10 312

原创 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

原创 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

原创 RC-u3 势均力敌

摘要 题目要求验证用n个不同个位数字组成的所有n!个n位数可以分成两组,使得两组的平方和相等且元素数量相同。程序通过DFS生成所有排列,并递归搜索符合条件的组合。关键点在于预处理平方和以避免重复计算,并通过控制搜索起始位置(i=pos)防止重复组合。输入n(2<n≤4)和n个数字后,程序输出其中一组解。示例输入为3和数字5、2、1,输出为125、512、251。

2025-08-10 22:12:49 328

原创 U514565 连通块中点的数量

摘要:本文描述了一个使用并查集处理动态连通性问题的算法。系统维护n个初始孤立的节点,支持三种操作:添加边(Cab)、连通性查询(Q1ab)和连通块大小查询(Q2a)。核心算法通过路径压缩优化find函数,并使用sum数组存储各连通块大小。时间复杂度接近O(1)每次操作,能高效处理大规模数据。代码实现包括初始化、合并操作以及两种查询的逻辑,适用于需要动态维护图连通性的场景。

2025-07-26 20:50:14 280

原创 7-1 最大子列和问题

本文介绍了三种求解最大子列和的算法:1. 暴力法(O(n²)):双重循环遍历所有子列,维护最大值;2. Kadane算法(O(n)):线性扫描,动态维护当前最大和;3. 动态规划法(O(n)):使用dp数组存储包含当前元素的最大子列和。三种方法都能正确处理全负数序列(输出0),其中Kadane算法和DP方法效率最高。输入格式为第一行整数K,第二行K个整数;输出最大子列和。三种代码实现均展示了完整解决方案。

2025-07-04 23:09:37 302

原创 3. 无重复字符的最长子串

摘要:本文介绍了两种求解字符串中最长无重复字符子串长度的方法。暴力枚举法以每个字符为起点向后扫描,使用哈希表记录字符出现情况,时间复杂度为O(n²)。滑动窗口优化法通过双指针维护无重复区间,遇到重复字符时调整窗口边界,时间复杂度降至O(n)。两种方法均通过示例验证了正确性,其中滑动窗口法在效率上更优,适用于处理较长字符串。关键点在于动态维护字符出现位置信息以快速定位重复字符。

2025-07-03 17:35:51 242

原创 1743. 从相邻元素对还原数组

摘要:本文探讨如何通过已知的相邻元素对重构原始数组。利用哈希表存储每个元素的相邻节点,先定位端点元素(仅有一个相邻节点),然后顺序遍历哈希表构建数组。算法时间复杂度为O(n),空间复杂度为O(n),能有效解决该重构问题并返回任意可行解。关键步骤包括哈希表构建、端点定位和顺序重构。

2025-06-26 10:45:51 218

原创 A. Color

摘要:本文提出了一种解决染色问题的贪心算法。算法首先去除数组两端与目标颜色i相同的部分,然后将中间部分全部染成i色,此时总代价为W[i] + (r-l+1)。接着检查中间是否存在连续的i色片段,若片段长度大于W[i],则保留该片段更优,可减少(p[i][j]-W[i])的代价。实现时使用二维数组存储各颜色的连续段长度,排序后从大到小处理。该算法通过权衡染色与保留原色的成本差异,实现了最优解的求解。

2025-06-22 17:00:24 259

原创 C. Bertown Subway

摘要:题目要求通过交换车站连接关系中的两个数,使车站间的可达性最大化。分析发现车站连接会形成环,环中可达数量为环长度的平方。解题思路是将两个最大长度的环合并,使可达数量达到(a+b)^2。代码实现时先找出所有环的长度,排序后将两个最大环合并计算,其余环单独计算平方和。最终结果为最大两环合并的平方加上其他环的平方之和。时间复杂度主要由排序决定。

2025-06-18 20:51:53 368

原创 C. Cherry Bomb

题目解析了数组处理中的三种情况:当数组a或b中存在超过k的值时输出0;当{b[i]}数对唯一或所有数对和相同时输出1;当所有b[i]均为未知时,根据a数组的最大最小值与k的关系计算输出结果。代码实现中通过遍历数组检查边界条件,分别处理这三种情况,并输出相应结果。算法复杂度为O(n),适用于多组数据输入测试。

2025-06-13 15:39:00 362

原创 BD202401补给

题目要求计算在预算B的限制下,最多能给多少个堡垒提供补给,其中可以享受一次半价优惠。解题思路是对堡垒按总费用排序,优先选择费用低的堡垒,并将优惠用在最后一个堡垒上。程序先对堡垒按P(i)+S(i)排序,然后遍历所有堡垒,判断能否支付全价或半价费用,统计最多可补给的堡垒数量。输入包含N和B,以及每个堡垒的P和S值,输出最大可补给堡垒数。

2025-06-11 17:41:54 317

原创 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 248

原创 A. Greedy Monocarp

There are n chests(箱子);

2025-06-09 20:28:56 381

原创 P1873 [COCI 2011/2012 #5] EKO / 砍树

本题要求找出满足条件的最高砍伐高度 H,使得总木材量不少于 M。使用二分查找在 0 到最大树高之间搜索,对每个中间值计算可获得的木材总量,若满足条件则尝试更高的 H,否则降低 H。最终找到最大的符合条件的 H,确保结果准确且高效。

2025-06-09 18:04:25 351

原创 P1102 A-B 数对

该内容提供了一个解决 A−B=C 数对统计问题 的 C++ 程序及详细解析。题目要求找出数组中所有满足 A−B=C 且 A 在 B 右侧的有序数对数量,相同数值但不同位置视为不同数对。核心思路: 排序数组:便于使用二分查找。 遍历每个元素作为 B:计算目标值 A = B + C。 使用 lower_bound 和 upper_bound:快速查找右侧等于 A 的元素个数。 时间复杂度优化:通过二分查找将效率提升至接近 O(N log N),适用于大输入规模(N 最多 20

2025-06-09 10:44:50 418

原创 P1803 凌乱的yyy / 线段覆盖

摘要:题目要求计算在多个比赛时间段不重叠的情况下,最多能参加的比赛数量。输入给出n个比赛的开始和结束时间,输出最大参赛数。解题思路是按结束时间排序后贪心选择最早结束的比赛,确保不与其他选中比赛冲突。时间复杂度为O(n log n)的排序加上O(n)的选择过程,适用于n≤1e6的数据规模。代码示例展示了结构体存储、自定义排序和标记检查的实现方法。

2025-06-02 20:44:12 365

原创 P1115 最大子段和

摘要:本文介绍了一种使用动态规划求解最大子段和问题的方法。通过定义dp[i]表示以a[i]结尾的最大子段和,状态转移方程为若dp[i-1]>0则dp[i]=dp[i-1]+a[i],否则dp[i]=a[i]。算法时间复杂度为O(n),空间复杂度可通过优化降低为O(1)。关键点在于理解dp数组的定义和状态转移过程,通过遍历数组并维护当前最优解来求得全局最大值。

2025-06-02 12:16:06 214

原创 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 599

原创 L1-093 猜帽子游戏

L1-093 猜帽子游戏分数 15作者 陈越单位 浙江大学宝宝们在一起玩一个猜帽子游戏。每人头上被扣了一顶帽子,有的是黑色的,有的是黄色的。每个人可以看到别人头上的帽子,但是看不到自己的。游戏开始后,每个人可以猜自己头上的帽子是什么颜色,或者可以弃权不猜。如果没有一个人猜错、并且至少有一个人猜对了,那么所有的宝宝共同获得一个大奖。如果所有人都不猜,或者只要有一个人猜错了,所有宝宝就都没有奖。下面顺序给出一排帽子的颜色,假设每一群宝宝来玩的时候,都是按照这个顺序发帽子的。

2025-04-15 15:51:18 332

原创 L1-094 剪切粘贴

使用计算机进行文本编辑时常见的功能是剪切功能(快捷键:Ctrl + X)。请实现一个简单的具有剪切和粘贴功能的文本编辑工具。abcdefgcdeabfgbfgabfcdeg每次操作后的字符串即为新的当前字符串。在若干次操作后,请给出最后的编辑结果。

2025-04-15 15:34:29 419

原创 7. 解立方根

mid的三次方 < n => left = mid + 0.0001;mid的三次方 > n => right = mid - 0.0001(这里不是之家将值置为mid,而是加和减去一定的值是为了实现精度)输出共 T 行,分别表示每个测试数据的答案(答案保留 3 位小数)。主要问题就是精度问题。给定一个正整数 N,请你求 N 的立方根是多少。第 1 行为一个整数 T,表示测试数据数量。接下来的 T 行每行包含一个正整数 N。利用二分法解决问题。

2025-04-11 21:47:31 356

原创 5. 蓝桥公园

小明有 Q 个观景计划,每个计划包含一个起点 stst 和一个终点 eded,表示他想从 stst 去到 eded。(1)先初始化数组D,为了实现判断,迎合w的值我们将所有值变成2e18(long long 数据类型能够存储的最大值),再将对角线上的值置为0(点自己到自己的距离)。第 22 到 M+1行每行包含三个正整数 u,v,w,表示 u↔v 之间存在一条距离为 w的路。使用算法处理后数组D是存放所有点到某点的最短路径长度。(2)首先我们将数组D开到足够大,存储输入的路径长度(注意题目中是。

2025-04-11 20:51:42 406

原创 P1928 外星密码

解开密码的第一道工序就是解压缩密码,外星人对于连续的若干个相同的子串 X 会压缩为 [DX] 的形式(D 是一个整数且 1≤D≤99),比如说字符串 CBCBCBCB 就压缩为 [4CB] 或者[2[2CB]],类似于后面这种压缩之后再压缩的称为二重压缩。如果是 [2[2[2CB]]] 则是三重的。递归的地方就是:如果遇到“[2AC]”这种形式,假设使用k来表示第一个数字,需要连续输出k次数字之后']'之前的字符串几次。对于 50% 的数据:解压后的字符串长度在 1000 以内,最多只有三重压缩。

2025-04-09 22:44:27 391

原创 P1464 Function

自我理解:记忆化搜索就是在dp的过程中将已经知道的值进行赋值给一个和dp对应的数组中去,在执行程序时候先判断是否对应的值存在,若存在就能直接使用,去除了重复的步骤,极大的减少了程序的运行时间。这是个简单的递归函数,但实现起来可能会有些问题。当 a,b,c 均为 15 时,调用的次数将非常的多。注意:例如 w(30,−1,0) 又满足条件 1 又满足条件 2,请按照最上面的条件来算,答案为 1。这道题直接利用题目给出的逻辑返回值会出现超时。对于一个递归函数 w(a,b,c)并以 −1,−1,−1 结束。

2025-04-09 20:13:41 239

原创 P1028 [NOIP 2001 普及组] 数的计算

请你求出,一共有多少个合法的数列。两个合法数列 a,b 不同当且仅当两数列长度不同或存在一个正整数 i≤∣a∣,使得 ai​=bi​。我们利用f(i)表示,当n = i 时的答案。输出一行一个整数,表示合法的数列个数。注意这里的i / 2取向下取整。输入只有一行一个整数,表示 n。这里i / 2也是向下取整。

2025-04-07 22:46:29 438

原创 P2036 [COCI 2008/2009 #2] PERKET

为了做好 Perket,厨师必须谨慎选择食材,以在保持传统风味的同时尽可能获得最全面的味道。当我们添加配料时,总的酸度为每一种配料的酸度总乘积;总的苦度为每一种配料的苦度的总和。接下来 n 行,每行 2 个整数 si​ 和 bi​,表示第 i 种食材的酸度和苦度。众所周知,美食应该做到口感适中,所以我们希望选取配料,以使得酸度和苦度的绝对差最小。另外,我们必须添加至少一种配料,因为没有任何食物以水为配料的。一行一个整数,表示可能的总酸度和总苦度的最小绝对差。代码中sum,表示在n种食材中选择的食材的数量。

2025-04-07 21:56:19 491

原创 P3799 小 Y 拼木棒

要想利用4个木棒得到一个正三角形,首先得有两个相同的木棒,并且这个长度的木棒会比另外两个木棒的长度长。我们合理使用数组来存储每个长度木棒的数量,将数组a开到满足题目的最大值。从大到小进行遍历,如果它的值a[i]大于等于2,则在1到i/2的范围内寻找满足题目情况的值。第二行往下 n 行,每行 1 个整数,第 i 个整数 ai​ 代表第 i 根木棒的长度。有 n 根木棒,现在从中选 4 根,想要组成一个正三角形,问有几种选法?上道题中,小 Y 斩了一地的木棒,现在她想要将木棒拼起来。第一行一个整数 n。

2025-04-06 16:01:06 357

原创 P1321 单词覆盖还原

只需要遍历整个字符串,因为单词的字符内容是连着的,因此,要想解决覆盖的问题,对于一个boy而言,有一个b,一个bo,或者一个boy都是一样的效果。后贴上单词,会覆盖之前贴上的单词,或者覆盖句号。最终,每个单词至少有一个字符没有被覆盖。我有一个长度为 l 的字符串,最开始时,这个字符串由 l 个句号(两单词,依次贴到这个字符串中。我在这个字符串中,将多次把。

2025-04-06 11:34:31 186

原创 P1149 [NOIP 2008 提高组] 火柴棒等式

给你 n 根火柴棍,你可以拼出多少个形如 A+B=C 的等式?等式中的 A、B、C 是用火柴棍拼出的整数(若该数非零,则最高位不能是 0)。这道题依旧使用暴力即可解决,枚举并且判断所有可能即可解决问题,注意要将范围开大一点。利用数组记录所有0-9数字对应的火柴数。一个整数,能拼成的不同等式的数目。一个整数 n(1≤n≤24)。

2025-04-05 11:43:46 289

原创 P3654 First Step (ファーストステップ)

我们 Aqours 现在已经一共有 K 个队员了,要歌唱舞蹈起来的话,我们得排成一条 1×K 的直线,一个接一个地站在篮球场的空地上呢 (横竖均可)。我们浦之星女子学院的篮球场是一个 R 行 C 列的矩阵,其中堆满了各种学校的杂物 (用。这是一道暴力的问题,分别判断一个点的向下和向右方向上是否满足条件即可。接下来的 R 行 C 列,表示浦之星女子学院篮球场。这个篮球场,好像很久没有使用过的样子啊……Aqours 的真正的粉丝的你,能帮我们算算吗?表示) 好像并不多的样子呢……里面堆满了学校的各种杂物呢……

2025-04-05 10:53:24 332

原创 P3392 涂条纹

现有一个棋盘状的布,分成了 N 行 M 列的格子,每个格子是白色蓝色红色之一,小 a 希望把这个布改成合法图案,方法是在一些格子上涂颜料,盖住之前的颜色。用例范围比较小,我们枚举每一种情况,将每一种对应的对应的涂色的数量存进数组中,然后在数组中求出最小的值即可。只要一个由 N×M 个小方块组成的旗帜符合如下规则,就是合法的图案。小 A 很懒,希望涂最少的格子,使这块布成为一个合法的图案。接下来 N 行是一个矩阵,矩阵的每一个小方块是。一个整数,表示至少需要涂多少块。第一行是两个整数 N,M。

2025-04-04 22:05:50 267

原创 P1088 [NOIP 2004 普及组] 火星人

如果把五根手指――拇指、食指、中指、无名指和小指分别编号为 1,2,3,4 和 5,当它们按正常顺序排列时,形成了 5 位数 12345,当你交换无名指和小指的位置时,会形成 5 位数 12354,当你把五个手指的顺序完全颠倒时,会形成 54321,在所有能够形成的 120 个 5 位数中,12345 最小,它表示 1;这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这个数字的含义后,再把一个很小的数字加到这个大数上面,把结果告诉火星人,作为人类的回答。

2025-04-04 16:13:46 310

原创 P1706 全排列问题

按照字典序输出自然数 1 到 n 所有不重复的排列,即 n 的全排列,要求所产生的任一数字序列中不允许出现重复的数字。的方式来实现,这个过程中要注意题目的要求是一个序列中的数要。由 1∼n 组成的所有不重复的数字序列,每行一个序列。这道题也是一道枚举的问题,我们通过使用。来记录每个数的状态,且在使用的过程中要注意。每个数字保留 5 个场宽。bool类型的used数组。

2025-04-02 17:21:55 204

原创 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 962

原创 P1036 [NOIP 2002 普及组] 选数

已知 n 个整数 x1​,x2​,⋯,xn​,以及 1 个整数 k(k<n)。从 n 个整数中任选 k 个整数相加,可分别得到一系列的和。通过DFS来筛选所有的可能,用used函数来存储是否选过了。为了使得所有可能中不出现相同数,顺序不同的情况,因此通过定义for循环中变量的初始值为1,并且随着DFS递增。第二行 n 个整数,分别为 x1​,x2​,⋯,xn​(1≤xi​≤5×106)。第一行两个空格隔开的整数 n,k(1≤n≤20,k<n)。例如上例,只有一种的和为素数:3+7+19=29。

2025-03-31 22:13:15 356

原创 P1618 三连击(升级版)

代码1:因为数据量比较小,我是直接进行遍历(最小为123,最大987,当然到不了987因为比例是升序),使用一个bool类型的数组用于检查数字是否被使用了,若使用了就跳过这个例子,读取数字的每一位使用while循环。,9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出。若干行,每行 3 个数字。按照每行第一个数字升序排列。代码2:dfs,将三个3位数合并成一个数组。三个数,A,B,C。

2025-03-31 21:50:29 249

原创 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 1

原创 P2640 神秘磁石

显然,两磁石间最大破坏力取决于磁力大小和磁石间距,那么请问给出长度不超过 n 的一维坐标系,有哪几对坐标间磁石破坏力最大。两个点之间的距离为k,都 <= n并且都是素数。输出所有满足这些要求的数对,如果没有就输出“empty”。所有小于等于 n 的素数对。每对素数对输出一行,中间用单个空格隔开。若没有找到任何素数对,输出。在遥远的阿拉德大陆,有一种神秘的磁石,是由魔皇制作出来的,两个正整数 n,k。

2025-03-30 23:17:58 284

原创 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

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除