自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 洛谷 P3817 小A的糖果

题目摘要: 给定n个糖果盒,每盒有a_i颗糖。每次操作可以吃掉一颗糖,要求使任意相邻两盒糖数之和不超过x,求最少需要吃掉的糖数。 关键思路: 从左到右遍历糖果盒,当相邻两盒糖数之和超过x时,优先减少右侧盒子的糖数,这样既能满足当前条件,又对后续相邻对产生影响,从而最小化总操作次数。需要特判第一盒糖数可能单独超过x的情况。 复杂度:O(n),适用于n≤1e5的数据规模。

2026-01-13 18:31:56 645

原创 牛客小白月赛124 D.小红的区间查询

题目要求统计区间[l,r]内满足x-a是x-b倍数的整数x的数量。通过数学推导将条件转化为x = b + (b-a)/(k-1),其中k-1必须是b-a的因子。解法是枚举b-a的所有因子,检查对应的x是否在区间范围内。由于直接枚举因子而非遍历整个区间,算法效率显著提升。输入输出采用快速IO处理大量数据。时间复杂度主要取决于因子枚举过程,对于每组数据为O(√(b-a)),适用于大规模输入。

2025-11-30 09:00:00 692

原创 牛客小白月赛124

题目要求重排数组,使得所有i<j时a_i-i≠a_j-j。核心思路是将数组降序排序,这样能保证变形后的b_i=a_i-i严格递减,从而满足元素互不相同的条件。对于每组测试数据,只需将数组降序排序后输出即可。该方法通过数学推导证明可行,且时间复杂度为O(nlogn),适用于大规模数据。

2025-11-29 11:36:47 861

原创 牛客周赛 Round 115 F.小苯的GCD疑问2.0

摘要:本文讨论了牛客网F题"最大化GCD×SUM"的解法。题目要求从1到n中选择至少k个数组成集合S,使得GCD(S)×SUM(S)最大。通过分析发现,当固定GCD时,SUM可表示为GCD的倍数和。利用整除分块技术,将候选GCD区间按m=n/GCD的值分组,每组只需考虑最大的GCD值。该算法将复杂度从O(n)优化到O(√n),适用于大数据范围(n≤10^9)。文章详细阐述了整除分块的适用条件和判断方法,并给出了示例代码。

2025-11-28 09:00:00 731

原创 牛客小白月赛123

摘要 题目要求在给定整数序列和操作次数限制下,找到使序列严格递增的最小非负整数d。通过差分数组分析,当差分值均大于0时输出0;若最小操作次数超过限制则输出-1。否则,在[1, min(a[i]-a[i-1])]范围内二分查找满足条件的最小d。对于每个候选d,计算将差分数组中非正值转为正值所需操作次数总和,若不超过限制则可行。时间复杂度为O(n log n)。

2025-11-26 10:00:00 879

原创 牛客2025秋季算法编程训练联赛6-基础组 D.配对

这道题目要求通过将两个正整数集合A和B进行一一配对,使得配对后的N个和中第K大的和最大化。解题思路是采用二分法来寻找最大的可能值X,使得至少有K对数的和≥X。具体实现时,先将两个数组排序,然后用双指针法检查是否存在K对满足条件的组合。时间复杂度为O(N log N),适用于大规模数据。示例代码展示了如何实现这一算法,通过二分查找和双指针技巧高效解决问题。

2025-11-26 09:00:00 720

原创 牛客周赛Round119 D题小苯的左右移动

这道题目要求计算对一个整数k执行n次交替左移和右移操作后的最终结果。关键点在于处理右移操作时的舍位问题。 解题思路: 遍历所有操作,累计净位移sum(左移加,右移减),并记录最小净位移mn 若mn为负,说明有舍位,需要将k右移|mn|次来模拟舍位 计算最终结果:k左移(sum+|mn|)次,并对998244353取模 关键点: 右移会导致低位舍去,必须通过mn记录最大右移量 需处理k=0的特殊情况 使用快速幂计算2的幂次以提高效率 该方法高效地处理了大规模数据,确保在O(n)时间复杂度内解决问题。

2025-11-25 09:00:00 1347

原创 牛客2025秋季算法编程训练联赛6-基础组 F-图

本文探讨了图论中简单回路与复杂回路的判定方法。核心区别在于:简单回路是边和顶点(除首尾外)均不重复的最小闭合路径,而复杂回路则存在边或顶点重复。判定步骤包括寻找回路、检查重复元素,并给出高频场景的快速判断方法。针对特定题目,作者提出当每个节点仅有一条出边时,图中只存在简单回路。通过DFS算法处理环结构,计算最长简单路径长度,并给出了具体代码实现。

2025-11-24 15:39:20 632

原创 Codeforces Round 1062 (Div. 4) G. Mukhammadali and the Smooth Array

Muhammadali 有一个整数数组a1​an​。他可以修改任意位置的元素:修改位置i需要花费ci​,并可以将ai​替换成任意整数。未被修改的位置需保持原值。修改完成后,如果下标i1≤in)满足最终的ai​严格大于ai1​,则称该下标为一个“下降点”(drop)。Muhammadali 希望最终数组中不存在下降点。请找出消除所有下降点所需的最小修改成本。

2025-11-23 09:00:00 666

原创 Codeforces Round 1062 (Div. 4) E题

摘要 题目要求为n个朋友选择k个传送点,使第一个到达的朋友耗时最长。朋友会走向最近的传送点,需最大化最小距离。通过二分查找确定最大可行距离u,并计算禁放区间(朋友位置±(u-1)内的位置不可选)。剩余位置即为可选传送点。关键步骤包括:1)二分验证u能否放置k个点;2)合并禁放区间;3)在非禁放区域选取k个点。时间复杂度O(n log x)。

2025-11-22 09:00:00 1251

原创 牛客周赛Round118 E.小红玩树

这是一道关于树上的博弈论问题。小红和小紫在树上移动,小红需要到达叶子节点获胜,小紫需要与小红相遇获胜。关键在于分析双方到各叶子节点的距离关系: 使用BFS预处理小红和小紫到所有节点的最短距离 检查是否存在叶子节点满足:小红到该节点的距离×2 ≤ 小紫到该节点的距离 若存在这样的叶子节点,小红获胜("red"),否则小紫获胜("purple") 算法通过遍历所有度为1的叶子节点,验证上述条件是否成立,从而确定游戏结果。时间复杂度为O(n),适用于大规模数据。

2025-11-21 09:00:00 1024

原创 牛客周赛 Round 118 D.小红拿石子

石子游戏问题摘要 该问题描述小红和小紫轮流取石子的游戏规则:小红每次拿一整堆,小紫每次从所有非空堆中各拿一个。最优策略下求小红最终获得的石子数。 解法思路: 将石子堆升序排序 小红应采取贪心策略,每次取最大的堆 通过数学推导计算每次取堆时的有效石子数 关键公式:当前取堆时的有效石子 = 该堆石子数 - 之前小紫的操作次数 核心算法: 对数组排序 从大到小遍历,累计小红取的石子 用公式sum - m*(m-1)/2计算有效石子数(m为小红操作次数) 取最大值作为答案 时间复杂度O(nlogn),空间复杂度O(

2025-11-20 09:00:00 621

原创 牛客周赛Round110

摘要 题目要求从给定序列中选择一个长度≥2的连续子区间,使得该区间的最大值(MAX)减去最小未出现非负整数(MEX)的值最大化。通过分析可知,最优解往往出现在长度为2的子区间中。算法遍历所有相邻元素对,计算每对的MAX和MEX:(1)若包含0但不含1,MEX=1;(2)若同时含0和1,MEX=2;(3)否则MEX=0。最终输出所有可能情况中的最大值。该解法时间复杂度为O(n),适用于大规模数据。示例如:输入[1,2,3,4,5]输出5(MAX=5,MEX=0),输入[0,0,0,0]输出-1(MAX=0,M

2025-11-19 09:00:00 874

原创 小红的好矩形

题目要求计算平面直角坐标系中能构成"好矩形"(长或宽为1)的不同四点组合数。解法使用容斥原理: 统计长为1的矩形:遍历所有横坐标x,查找与x+1共有的y坐标数cnt1,贡献C(cnt1,2)个矩形。 统计宽为1的矩形:遍历所有纵坐标y,查找与y+1共有的x坐标数cnt2,贡献C(cnt2,2)个矩形,但需减去长宽均为1的正方形重复计数。 最终答案为两部分统计之和减去重复的正方形计数。算法时间复杂度为O(n log n),适用于n≤2×10^5的数据规模。

2025-11-17 20:17:43 1004

原创 find the most comfortable road

摘要:本文探讨了寻找最舒适路径的算法问题,要求路径中最大与最小限速差最小。作者最初尝试使用最小生成树但失败,后改为枚举排序后的边:将边按速度排序后,枚举每条边作为最小速度,然后逐个添加更快的边直到起点终点连通,此时计算速度差并记录最小值。算法通过并查集管理连通性,最终输出最小速度差或-1(无解)。代码展示了该方法的实现过程。

2025-11-15 12:08:39 256

原创 牛客2025秋季算法编程训练联赛5-基础组 题解

本文包含三个编程竞赛题目解析: 模版:通过比较两个字符串的公共部分,计算最少操作次数(替换、删除、添加)。核心思路是公共长度部分的差异加上长度差,时间复杂度O(n)。 I题是个签到题:判断I题是否为签到题,满足两个条件之一:通过人数≥80%或排名前三。使用排序和简单条件判断即可解决。 牛牛战队的秀场:计算圆内接正n边形上两点的最短路径。利用几何知识求出边长,并比较顺时针和逆时针路径的最小值,结果保留6位小数。 三题均考察基础算法和数学应用,代码简洁高效。

2025-11-14 11:35:46 714 3

原创 牛客周赛Round117 E 小红玩马

摘要:本文探讨了国际象棋中马的恰好k步移动路径问题。给定n×m棋盘和起点、终点坐标,要求找到一条恰好k步从起点到终点的路径。解题思路采用分层BFS,记录到达每个位置的最小奇数步和偶数步。若存在满足(k-Z)%2==0的解,则通过来回跳消耗多余步数。算法使用三维数组存储距离和前驱信息,回溯路径后处理剩余步数。代码实现了这一过程,时间复杂度和空间复杂度均可行。

2025-11-12 09:00:00 356

原创 牛客周赛 Round 117

摘要:题目要求将一个树结构通过最少操作次数变为链结构。每次操作可断开并重新连接边。关键在于发现链的每个节点度数不超过2。解题思路是统计所有度数大于2的节点,计算需要断开的边数(deg-2),总和即为最小操作次数。通过逆向思维(从链到树)和延迟操作(先统计后处理)简化问题。时间复杂度O(n),适用于大规模数据(n ≤ 2×10⁵)。

2025-11-11 19:06:32 703

原创 P2512 [HAOI2008] 糖果传递

数轴上有 n 个点,坐标为我们要选择一个 x 使最小。数轴上 n 个点到 x 的总距离最小的充要条件是 x 为这些点的中位数(或中位数所在区间内的点)。该结论正是 “糖果传递” 问题中利用前缀和+中位数计算最小代价的理论基础。接下来给出代码int n;cin>>n;i<=n;sum+=a[i];i<=n;i++){i<=n;solve();return 0;AC的第一道洛谷蓝题。

2025-11-07 07:00:00 915

原创 牛客小白月赛122 D题x_to_y_2

请问最少操作几次才可以让 x 变成 y。

2025-11-06 20:10:50 310

原创 牛客2025秋季算法编程训练联赛2-基础组 F题拿物品

牛牛和牛可乐面前有 n 个物品,这些物品编号为 1, 2, …, n,每个物品有两个属性 a_i, b_i。牛牛与牛可乐会轮流从剩下物品中任意拿走一个,牛牛先选取。设牛牛选取的物品编号集合为 H,牛可乐选取的物品编号的集合为 T,取完之后,牛牛得分为所有 i 属于 H 的 a_i 之和;而牛可乐得分为所有 i 属于 T 的 b_i 之和。牛牛和牛可乐都希望自己的得分尽量比对方大(即最大化自己与对方得分的差)。

2025-11-04 08:00:00 702

原创 牛客2025秋季算法编程训练联赛2-基础组 D题数三角

这个题看到我刚看到其实没有什么思路,想到余弦定理但是余弦定理有点麻烦,于是就看了题解,题解用了一种比较巧妙的方式——向量,我们知道高中学过了一个方法叫做向量的点乘。res1代表AB向量的横坐标,res2代表向量AB的坐标,res3代表向量AC的横坐标,res4代表向量AC的纵坐标。题目描述牛牛得到了一个平面,这个平面上有 n 个不重合的点,第 i 个点的坐标为 (xi, yi)。第二行至第 n+1 行中,第 i+1 行包含两个整数 xi, yi,表示第 i 个点的坐标。输出一行,一个整数表示答案。

2025-11-03 15:08:42 331

原创 洛谷P1883 三分模板

给定n个二次函数f1​xf2​xfn​x(均形如ax2bxc),设Fxmaxf1​xf2​x...fn​x)},求Fx在区间01000上的最小值。

2025-10-30 09:00:00 517

原创 洛谷p1824

二分查找是 “最大化最小值” 问题的 “万能钥匙”,几乎所有场景都能适用(只要能定义 “某个值是否可行” 的判断函数),时间复杂度通常为O(n log M)M为可能的最大值范围)。贪心 / 并查集 / DP更多用于特定场景:贪心适用于排序后规则明确的问题,并查集适用于图论连通性问题,DP 适用于有子问题依赖的场景。实际解题时,优先考虑二分查找(通用性强),若问题有明显的图论、子问题结构,再尝试其他算法。

2025-10-29 09:00:00 619

原创 P1281 [CERC1998] 书的复制

摘要 这道题要求将m本有序书籍分配给k个人连续抄写,每人抄写速度相同,目标是使抄写时间最短(即最大页数最少)。解题关键在于二分查找确定最大页数限制,并通过贪心策略分配书籍。首先计算前缀和数组,然后二分查找最小可行页数,最后从后向前分配书籍以满足题目"前面人尽可能少抄写"的要求。算法复杂度主要由二分查找O(log(sum))和分配过程O(mk)决定,适用于给定数据规模。

2025-10-28 21:00:10 442

原创 小苯的真假游戏---入门思维题

摘要:这道题考察环形约束下的逻辑推理。小朋友围成一圈,每人根据左侧小朋友的真假状态做出声明。解题关键在于:假设第一个小朋友说真话或假话,依次推导出其他人的状态,最后验证环是否闭合(即第一个人的状态是否与推导结果一致)。对于每组数据,最多只有0或2种合法解(全真或全假)。时间复杂度O(n),空间复杂度O(1)。示例验证了该规律的正确性。

2025-10-28 07:00:00 579

原创 小苯的区间选数2.0------经典的一道贪心+区间调度问题

先来看题来源:牛客网时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M题目描述 :给定 n 个区间,小苯需要从每个区间中选择一个数字,构成一个长度为 n 的序列。他希望最大化序列的 MEX,请计算 MEX 的最大值。MEX 指最小未出现的非负整数。例如,MEX{0,1,2}=3,MEX{1,2,3}=0。输入描述 每个测试文件包含多组测试数据。

2025-10-27 20:46:48 1001

原创 牛客2025秋季算法编程训练联赛2-基础组 C题判正误

每组数据输入一行七个整数 a, b, c, d, e, f, g。保证 1≤T≤1000,-10^9≤a,b,c,g≤10^9,0≤d,e,f≤10^9,保证不会出现指数和底数同为 0 的情况。题目描述:牛可乐有七个整数 a, b, c, d, e, f, g,并且他猜想 a^d + b^e + c^f = g。很轻松应该能通过这么大数据范围想到用快速幂来求解a的d次方,b的e次方和c的f次方,但是快速幂需要对一个数取余,这个数我们应该怎么选呢?说明:1^5 + 1^1 + 4^4 = 258。

2025-10-22 21:56:10 284

原创 迷宫-----牛客

题号:NC275634时间限制:C/C++/Rust/Pascal 1 秒,其他语言 2 秒空间限制:C/C++/Rust/Pascal 256 M,其他语言 512 M64bit IO Format: % lld。

2025-10-19 22:19:29 850

原创 honoka和格点三角形

底为2高为1时候,底边为2,x的取值有 1,2,...,m-2,向上方向(y+1≤n):y=1,2,...,n-1,共 n-1 种;底为1高为2时候,底边为1,x的取值有 1,2,...,m-1,向上方向(y+2≤n):y=1,2,...,n-2,共 n-2 种;则符合条件的三点坐标可选:(1,1)(1,2)(3,1)(1,1)(1,2)(3,2)(1,1)(2,2)(3,1)(1,1)(3,1)(3,2)(1,2)(2,1)(3,2)(1,2)(3,1)(3,2)总计:2 (n-1) 种。

2025-10-16 14:14:16 1229

原创 nozomi和字符串

题目来源 牛客网:https://ac.nowcoder.com/acm/contest/118654/F题目描述 nozomi看到eli在字符串的“花园”里迷路了,决定也去研究字符串问题。她想到了这样一个问题: 对于一个“01”串而言,每次操作可以把0字符改为1字符,或者把1字符改为0字符。所谓“01”串,即只含字符0和字符1的字符串。nozomi有最多k次操作的机会。她想在操作之后找出一个尽可能长的连续子串,这个子串上的所有字符都相同。nozomi想问问聪明的你,这个子串的长度最大值是多少?

2025-10-16 11:35:21 547

原创 洛谷p1414又是毕业季||

时间限制: 1.00s 内存限制: 125.00MB。

2025-10-14 20:13:39 1077

原创 牛客小白月赛121 谁敢动资本的蛋糕(ps:这次真被做局了)

【摘要】题目要求将n种美食通过n-1次两两异或合并,每次合并成本为2*(x&y)。通过位运算公式推导发现:总合并成本=所有数之和-所有数异或结果。输入n个关注度后,直接计算总和与异或和的差即可得到最小总成本。例如输入4个数1,2,3,5时,总成本为(1+2+3+5)-(1^2^3^5)=11-5=6。该解法时间复杂度O(n),适用于n≤2e5的情况。

2025-09-28 10:56:53 886

原创 牛客Round109 ------小红的马

题目摘要:给定无限大棋盘上n个兵的位置,寻找一个未被占据的正整数坐标放置马,使其能攻击最多数量的兵。马可以攻击八个方向且不考虑蹩马腿。由于棋盘无限大,直接枚举不可行,故采用逆向思维:对每个兵的位置,计算其周围八个可能被马攻击的位置,并用map记录这些位置能攻击到的兵数。遍历所有兵后,找出map中兵数最多的位置作为答案。时间复杂度为O(n)。输入n个兵坐标,输出任意一个满足条件的行列号。示例显示在特定兵布局下,(1,1)或(1,2)可能是最优解。

2025-09-16 18:12:27 358

原创 并查集如何高效搜索----AcWing 6100. 奶牛选美

本文提出了一种基于并查集优化的区间处理算法,用于解决奶牛选美问题。该问题需要在m轮比赛中,每轮保留指定区间[l,r]内的胜者x,其他奶牛被x淘汰。关键算法通过并查集的路径压缩技术,将时间复杂度优化至O((n+m)α(n))。具体实现时,将区间拆分为x左右两部分处理,确保胜者不被错误淘汰。最终输出各奶牛被谁击败的记录,冠军标记为0。该算法还可推广到其他区间染色和资源分配问题,具有高效处理大规模数据的能力。

2025-09-14 13:46:36 631

原创 洛谷p1308

摘要:该代码解决单词匹配问题,通过在字符串两端添加空格确保只匹配完整单词而非子串。首先将输入字符串转为小写,然后在待查字符串中搜索目标单词。不加空格会导致误匹配单词部分(如"to"匹配"notto"中的"to"),添加空格后确保仅匹配独立单词。若未找到匹配返回-1,否则输出匹配次数和首次出现位置。关键点在于空格处理保证单词完整性。

2025-05-28 22:09:04 300

原创 洛谷P2441统计方形

摘要:本文探讨了计算矩形和正方形个数的问题。通过固定右下角位置(i,j),推导出矩形总数等于ij,其中正方形个数为min(i,j)。文中提供了AC代码,采用双重循环枚举所有右下角位置,累加计算矩形和正方形总数,最终用差值得到长方形个数。特别提醒需要使用long long类型存储结果。该解法时间复杂度为O(nm),适用于解决类似网格计数问题。

2025-05-27 18:10:05 291

原创 洛谷p1102数对

需要注意的是第三个数据点,数据比较大,cnt必须用longlong。

2025-03-27 18:03:54 240

原创 明解c语言第四章while语句练习4-6和练习4-7

想了好长时间,半节水课的时间,终于想出来了!感觉有点难想(个人见解)而且if语句中的i%2=0感觉想不出来怎么办呢,于是我想了另一个办法,先定义两个变量,赋值其中一个变量==1,是不是只要让这个变量在乘上2之后每次递加到输入的数的值是不是就可以了于是便有了。就在前几天我学习了一个do语句,接着这几天学习了一个while语句,看完书来写练习4-6和练习4-7感觉一头雾水,可能是今天中午没睡觉的缘故我脑子里空空的,于是对于练习4-6我求助了ai。各位大老爷去,求求你们一键三联,支持支持我这个小白吧!

2024-10-25 18:45:34 778 2

原创 明解c语言入门篇练习4-2do语句延伸

printf("大于等于%d小于等于%d的所有整数的和是%d",min,max,(max-min+1)*(max+min)/2);printf("这两个整数及其之间所有整数的和为%d.\n", sum);printf("%d到%d的平方和为%d",a,b,sum);printf("整数a:");printf("整数b:");printf("整数a:");printf("整数b:");printf("请输入两个整数: ");printf("该数的阶乘是%d",sum);

2024-10-23 17:56:59 661

空空如也

空空如也

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

TA关注的人

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