自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CCF-CSP认证常用模板

摘要 本文总结了C++中vector和priority_queue的常用操作及竞赛技巧。vector部分涵盖初始化、访问、修改、容量管理和迭代器遍历,强调emplace_back和reserve的高效用法。priority_queue部分对比大根堆、小根堆及自定义堆的实现,说明比较逻辑如何决定堆顶元素。示例代码展示典型应用场景,如push_back动态扩容、pop_back删除元素,以及优先队列的排序特性。全文聚焦性能关键点(如时间复杂度)和竞赛实用技巧(如预分配空间),适合算法竞赛快速查阅。

2025-09-15 10:07:17 949

原创 第38次CCF-CSP认证——月票发行(chatgpt5 vs deepseekv3.1)

摘要 题目要求计算满足特定条件的月票编号数量,编号由字母和固定位置的井号组成,需包含"ccf"和"cspark"子串且前者在后者左侧出现。核心思路是将字符串按井号分段处理,利用自动机和矩阵快速幂高效计算各段避免特定模式的数量,再通过容斥原理扣除不合法情况。关键步骤包括:定义各段避免模式的基本函数、计算全局不合法情况(缺少模式或顺序错误)、使用线性递推处理复杂卷积。该方法适用于大范围数据(n≤10^9,m≤10^6),通过预处理矩阵实现O(log L)时间计算。最终答案

2025-08-27 10:30:57 2087 4

原创 2025“钉耙编程”中国大学生算法设计暑期联赛(5)1007K-MEX

本文研究了从集合${0,1,...,n-1}$中随机选取$k$个不同整数时,其MEX(最小未出现自然数)的期望计算问题。通过组合数学分析,将MEX期望转化为概率加权和,利用变量替换和组合数恒等式进行化简,最终得到简洁的期望公式$E = \frac{k}{n-k+1}$。对于大数取模需求,采用费马小定理计算模逆元,确保算法在$O(T\log MOD)$时间复杂度内完成,其中$T$为测试用例数。该解法高效处理了大规模输入($n \leq 10^9$),并通过数学推导将复杂问题简化为可直接计算的表达式。

2025-08-03 18:23:32 658

原创 湖南大学2025暑期培训练习赛二Problem A: Tower Defense

摘要:题目模拟一个塔防游戏,怪物从位置 ( N ) 向位置 ( 1 ) 移动,士兵在特定区间内攻击怪物。使用差分数组统计每个位置的攻击次数,模拟怪物移动过程。若怪物在到达位置 ( 1 ) 前血量 ( H \leq 0 ),输出死亡位置;否则输出 -1。算法通过差分和前缀和处理攻击次数,时间复杂度 ( O(N + M) )。

2025-08-02 21:42:26 887

原创 洛谷刷题8.2

本文介绍了三个算法题的解法:1) USACO17DEC的"MyCowAteMyHomeworkS"使用后缀和与后缀最小值数组计算平均分;2) "HaybaleFeastG"结合ST表预处理和二分查找求解最小辣度;3) "上帝造题的七分钟"采用二维树状数组处理区间查询与更新,需注意int类型避免内存溢出。每个解法都提供了核心思路和关键代码实现。

2025-08-02 21:11:39 225

原创 2025“钉耙编程”中国大学生算法设计暑期联赛(5)1012最小值

本文研究了如何高效计算两个数组元素的绝对差之和的最小值。通过构造辅助数组并利用排序性质,将问题转化为求排序后相邻元素的差值最小值。具体步骤包括:(1)构造A数组(a_i + b_i)和B数组(a_i - b_i);(2)分别排序后求相邻元素差的最小值;(3)取两个最小差中的较小者作为最终结果。该算法的时间复杂度为O(n log n),适用于大规模数据。

2025-08-01 21:21:28 991 2

原创 洛谷P4479第K大斜率

本文介绍了一种求解平面点集中第k大斜率的高效算法。算法采用二分答案框架,结合树状数组统计顺序对,时间复杂度为O(n log n log(2e9))。关键步骤包括:1)按x坐标排序预处理;2)二分斜率范围;3)通过计算转换值z_i并离散化;4)用树状数组动态统计满足条件的点对数。算法通过特殊排序策略处理斜率不存在的情况,并通过离散化优化树状数组操作。代码实现了提前退出、树状数组清零等优化,能够正确处理大规模数据。最终输出第k大斜率的向下取整结果,通过所有测试用例。

2025-08-01 20:17:58 866

原创 洛谷刷题7.31

本文介绍了多个算法题目的解决思路和代码实现,主要包括: MooFestG加强版:使用离散化和树状数组计算位置绝对差之和,时间复杂度O(nlogn)。 递增问题:通过二分查找优化最长上升子序列计算,复杂度O(nlogn)。 逆序数问题:利用线段树统计逆序对数量。 火柴排队:通过离散化和树状数组求逆序数实现最小移动代价。 约瑟夫问题:使用vector模拟环形删除过程。 HH的项链:离线处理+树状数组维护区间查询。 Agent2:树状数组维护差分数组实现区间修改单点查询。 无聊的数列:线段树维护差分数组实现区间修

2025-07-31 17:48:25 876

原创 洛谷刷题7.30

本文介绍了五道算法题的解题思路和代码实现:1) 四子连棋使用广度优先搜索;2) 三元上升子序列通过树状数组统计前后元素;3) 前缀和问题采用线段树维护;4) 简单题利用线段树记录操作次数;5) 队列问题通过单调队列和二分查找处理。每道题都给出了核心算法思路和关键代码片段,展示了不同数据结构的应用场景。

2025-07-30 23:56:46 490

原创 KOI 2025 Round 1 Unofficial Mirror

本文介绍了四个算法编程题的解题思路和代码实现。1. 第一题通过记录数字首次出现位置,计算再次出现时中间数字个数;2. 第二题通过分析等腰直角三角形性质,用极值法求出包含所有点的最小三角形;3. 第三题使用小根堆维护当前数字,找到满足条件的最小数量;4. 第四题是第三题的升级版,通过离散化和树状数组优化多查询处理。每个问题都展示了不同的算法技巧,包括模拟、数学分析、优先队列和树状数组的应用。

2025-07-30 11:44:01 577

原创 洛谷刷题7.29

本文介绍了8个算法题目的解题思路和代码实现,涵盖二维差分、前缀和、归并排序、线段树、并查集、双端队列BFS等多种算法技巧。主要内容包括:P3397地毯的二维差分应用、P2280激光炸弹的前缀和处理、P1908逆序对的线段树解法、P2097资料分发的并查集实现、P3406海底高铁的差分前缀和优化、P1138第k小整数的去重排序、P1498南蛮图腾的图形复制技巧,以及P4667电路维修的双端队列BFS解法。这些题目展示了基础算法在实际问题中的应用,适合算法初学者学习参考。

2025-07-29 20:21:29 364

原创 洛谷刷题7.28

本文整理了四道算法竞赛题目解析,均涉及前缀和与差分技巧: 期末考试题(P3745)使用二分法枚举出分天数,通过预处理前缀和计算代价函数,分情况讨论调整成本,最终取最小值。 三体攻击题(P8666)采用二分+三维差分,通过下标变换处理立方体区域的攻击值变化,检查是否超过初始生命值。 数据结构题(P3948)实现差分数组进行区间修改,动态维护满足模数条件的区间统计。 七的倍数题(P3131)利用前缀和取模性质,记录同余数的最早和最晚出现位置求最大区间。 四题均展示了前缀和与差分在算法竞赛中的典型应用,涉及时间复

2025-07-28 16:52:02 220

原创 2025“钉耙编程”中国大学生算法设计暑期联赛(4)1001电子带负电

题目给出一个非负整数数组的操作序列,要求计算最大子段和以及满足条件的子区间个数。最大子段和即所有元素之和。子区间个数由非零元素的最左端和最右端确定,结果为左端点可选范围、右端点可选范围与区间值限制的乘积。特例是全零数组,子区间数为组合数公式计算结果。代码通过遍历数组统计元素和、非零元素边界及极值,最终输出结果。

2025-07-28 16:27:37 644 2

原创 2025“钉耙编程”中国大学生算法设计暑期联赛(3)1004三带一

题目考察二分查找应用,关键在于设计check函数。通过计算每种牌需要组成3张的下限t,判断是否满足条件(t≤min(arr[i]/3,x)且总和≤x)。算法时间复杂度为O(13log(sum/4)),使用二分查找确定最大可行解。AC代码实现了这一思路,先预处理牌数总和,再通过二分查找验证中间值。

2025-07-27 19:36:21 267

原创 2025“钉耙编程”中国大学生算法设计暑期联赛(3)1012核心共振

该题解通过将问题转化为前缀和求解,分别计算x-y和x+y的贡献。首先对坐标进行排序,然后利用前缀和数组快速计算各点间的距离总和。关键在于使用费马小定理求2的逆元进行模运算,最终结果取模输出。代码中使用了快速输入输出优化,并通过结构体存储坐标和权值,排序后计算前缀和数组,最后合并两部分贡献得到答案。时间复杂度主要由排序决定,为O(n log n)。

2025-07-26 22:13:48 501

原创 湖南大学2025暑期培训练习赛一:Problem G: Give Me a Lot of Triangles

摘要:题目给出长度为1、2、3的若干木棍,要求用它们组成尽可能多的三角形。解法采用贪心+动态规划:先预处理出可能组成的7种三角形组合,对于大数据部分先用贪心处理(优先组成等边三角形),剩余小规模数据用完全背包求解。这样可以避免直接处理大数带来的复杂度问题,最终结合两种方法的结果输出答案。代码展示了如何实现这一混合策略。

2025-07-26 20:49:10 1299

原创 洛谷刷题7.25

本文摘要整理了6道来自洛谷的算法题解,主要涉及二分法和三分法应用: P1102A-B数对:使用map统计数字出现次数,查找满足A-B=C的数对 P1462通往奥格瑞玛的道路:二分+最短路,在费用限制下寻找最优路径 P1824进击的奶牛:二分答案解决最小化最大间距问题 P1419寻找段落:二分答案配合优先队列优化,查找最大平均值段落 P3382三分:通过求导和二分法求函数极值 P1883【模板】三分:标准三分法模板题,求多函数最大值的最小值 这些题目展示了二分/三分法在不同场景下的灵活应用,包括数值查找、最优

2025-07-25 21:01:02 213

原创 洛谷刷题7.24

本文展示了多个二叉树和堆相关的算法题解,包括:1)FBI树的递归遍历;2)已知中序后序求先序遍历;3)新二叉树的遍历;4)使用优先队列实现小顶堆;5)合并果子的贪心策略;6)求最小函数值的堆优化;7)遍历问题的思维解法;8)跳房子的二分+单调队列动态规划。所有代码均采用C++实现,涉及二叉树遍历、堆操作和动态规划等算法思想,部分题目给出了优化策略以防止超时。

2025-07-24 22:53:20 495

原创 洛谷刷题7.23

本文整理了多个算法题解,主要涉及贪心、二分、单调队列/栈和ST表等数据结构。P2422使用贪心+二分求最大舒适度区间;P1725通过动态规划+单调队列优化找最大冰冻值;P2776模拟小组队列操作;P2947和P5788使用单调栈解决元素查找问题;P1449和P1981利用栈进行表达式求值;P1739处理括号匹配问题;P2880使用ST表快速查询区间极差。这些题目展示了不同数据结构的典型应用场景和解题思路。

2025-07-23 20:38:42 443

原创 洛谷刷题7..22

本文介绍了5道与队列相关的算法题目及其解法:1. P1160队列安排(静态链表处理插入删除)2. P1540机器翻译(队列模拟内存管理)3. P1440和P2032滑动窗口问题(双端队列求区间最值)4. P1714切蛋糕(前缀和+滑动窗口/ST表求最大子段和)5. P2629消息序列(前缀和+后缀最小值处理循环序列)。每道题都给出了核心思路和C++代码实现,涉及链表、队列、滑动窗口等多种数据结构应用。

2025-07-22 20:19:46 460

原创 2025杭电多校赛(2)1006 半

该题目要求计算每个选手通过禁赛其他选手成为两场比赛第一名所需的最少禁赛人数。解题关键在于利用两个排名数组的全排列性质,通过预处理将第二场比赛的排名转换为位置索引,然后使用树状数组或线段树高效统计每个选手在两场比赛排名前的重复选手数。算法步骤包括:1)预处理第二场比赛的位置索引;2)遍历第一场比赛,使用线段树动态维护并查询选手在第二场比赛中的排名情况;3)对每个选手计算需要禁赛的人数。该方法将时间复杂度优化至O(n log n),适用于大规模数据。

2025-07-21 20:33:16 455

原创 第34次CCF-CSP认证第4题,货物调度

摘要:该题解介绍了如何用分组背包DP和贪心算法解决问题。先将每个仓库的物品按价值降序排序,保证优先选择高价值物品。通过预处理确定最大代价40000后,采用分组背包的经典解法:遍历每组物品,动态更新背包容量对应的最大价值。最后检查满足条件的最小总代价输出结果。代码实现包括输入处理、排序、动态规划和结果判断等步骤。(150字)

2025-07-12 16:38:16 338

原创 洛谷刷题7.8

st表,每次添加只需log(n)的复杂度修改。中规中矩的dijkstra求最短路。

2025-07-08 21:48:09 287

原创 洛谷刷题7.7

本文摘要整理了5道洛谷编程题的解题思路和代码实现: P2622关灯问题II:使用BFS求最短路,状态用01数组表示并通过位运算转换 P1336最佳课题选择:采用部分背包动态规划求解最优方案 P1474货币系统:完全背包问题求方案数 P1141迷宫:BFS优化技巧,记录访问时间和块大小映射 P8673迷宫与陷阱:广搜时需记录坐标和剩余无敌步数 还包含P12323阶乘求和的数学解法,注意到40!后9位为0的特性。各题均给出了简洁的C++代码实现,涉及BFS、动态规划、位运算等算法技巧。

2025-07-07 21:50:31 297

原创 洛谷刷题6.24&&6.23

本文总结了洛谷P1339和P1119两道图论问题的解题思路。P1339使用堆优化Dijkstra算法求解无向图单源最短路径,通过优先队列实现高效处理。P1119则采用动态Floyd-Warshall算法处理灾后重建场景,利用时间单调性逐步更新中间节点,实现最短路径的动态查询。两题均针对不同规模的图结构设计了合适算法,前者适合中等规模图(O(nlogn)),后者利用时间特性优化了传统Floyd算法(O(n³+Qn²)),体现了图论算法在实际问题中的灵活应用。

2025-06-24 12:26:32 1099

原创 洛谷刷题6.22&&6.21

该代码解决的是图上的最短路径累积问题:给定一个有向图(或无向图,代码中未区分)和一系列必须按顺序访问的点,计算从序列起点到终点依次访问相邻点所走的最短路径总长度。该代码解决的是分组背包问题,结合了贪心排序思想。核心目标是在有限的士兵数量下,通过合理分配兵力到不同城堡,最大化总得分。得分规则为:在每个城堡中,若你的兵力严格大于某对手兵力的两倍,则战胜该对手得 1 分。该代码解决的是多重背包与特殊物品组合优化问题。问题分为两部分:处理普通物品(多重背包)和处理特殊物品(具有非线性收益的背包问题)。

2025-06-22 22:17:43 1118

原创 洛谷刷题6.19

本文介绍了多个编程问题及其解法,主要涉及线段树和动态规划的应用。对于线段树模板题(P3372等),提供了建树、区间修改和查询的实现代码;对于区间取反问题(P2846等),修改了线段树的add和push_down函数;对于动态规划问题(P2623等),展示了背包问题的变形解法;最后还包含了一些细节处理(如排序)在实际问题中的应用。代码示例均采用C++实现,涵盖了常见的算法模板和解题思路。

2025-06-19 19:55:41 446

原创 洛谷刷题6.18&&6.17

本文摘要了多个洛谷编程题解,涵盖背包问题、模拟题和动态规划等算法。包括二维01背包(P1855)、混合背包(P1833)、坏项链模拟(P1203)、书本整理DP(P1103)、英雄联盟多重背包(P5365)、消失物品逆操作(P4141)、乌龟棋递推(P1541)和中位数查找(P1168)。这些解法展示了动态规划的不同应用场景,如状态转移、分类处理、细节模拟以及特殊数据结构的使用,同时提醒注意边界条件和优化技巧。

2025-06-18 23:33:28 439

原创 洛谷刷题6.16

本文记录了博主在算法刷题过程中的四道题目解析:1)P1080国王游戏(高精度排序题);2)P4552差分序列(思维题);3)P1378油滴扩展(全排列暴力枚举);4)P1126机器人路径(广搜)。每道题都提供了代码实现,但博主声明代码不规范且无注释,仅供个人记录。其中涉及高精度计算、差分思维、全排列枚举和广度优先搜索等算法,并表示暑假集训期间将持续更新刷题记录。

2025-06-16 18:37:01 252

原创 动态规划刷题(2025.4.8)

结合贪心思想,第一天的纪念品第二天立马卖。

2025-04-08 22:59:25 236

原创 dijsktra最短路练习(2025.4.7)

dijsktra最短路

2025-04-07 23:54:03 310 1

原创 分组背包模板

第一层循环枚举组数,第二层做01背包,第三次枚举该组每个物品得到最优解。这里有两个限制条件,一组选一个和背包体积,所以为二维dp。

2025-04-06 23:11:24 253

原创 多重背包二进制优化模板

多重背包二进制优化

2025-04-06 23:00:36 242

原创 洛谷刷题区间动态规划(2025.4.6)

个人认为区间动规是最好理解的,甚至比背包都好理解,更类似于递推。

2025-04-06 13:02:15 265

原创 洛谷动态规划练习第三弹(2025.4.5)

今天做题比较少,以后尽量保证每天1小时的编码时间。

2025-04-05 17:26:16 315

原创 动态规划练习第二弹(2025.4.4)

动态规划练习(洛谷)

2025-04-04 23:35:08 311

原创 第37次ccf csp认证总结

1.这次简单题很简单,难题很难。前两题13分钟都做了出来,在第四题上卡了差不多两个小时,在第一次提交时2,3数据点显示输出错误,以为数据不强没有超时,所以一直在调,后发现是取模操作有问题,交上去喜提超时。第三题1,3操作很简单,20分钟就拿了60分。2.第四题好像要用线段树+二分,第四题貌似是树形dp,这些博主都不会。

2025-04-04 09:54:10 3729 5

原创 动态规划新手入门刷题(2025.4.3)

动态规划入门刷题记录(2025.4.3)

2025-04-03 23:34:39 353

原创 最长上升子序列问题

1.用一个b数组记录序列(这个序列不是正确的,只是长度和答案一样)2. 遍历a数组,如果ai>b的末尾元素,直接添加进b数组。若小于,用ai替换第一个大于等于 ai的元素(注意是大于等于)

2025-04-03 12:29:13 503 1

原创 数塔问题,洛谷P1216

观察下面的数字金字塔。写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。在上面的样例中,从7→3→8→7→5的路径产生了最大权值。

2025-04-02 22:47:44 800 2

空空如也

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

TA关注的人

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