自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 P5578 [PA 2014] Fiolki

本文介绍了一种解决药物合成问题的算法。题目描述有n种药品,m次合并操作和k个化学反应。通过并查集管理药品合并,动态数组存储配方信息。在处理每次合并时,检查可能触发的化学反应,按优先级排序后计算反应消耗量。该方法有效模拟了药物合成过程,最终输出总反应量。核心思路是利用并查集维护药品集合,动态处理可能发生的连锁反应。

2025-10-27 10:12:41 297

原创 题解:P14253 旅行(trip)

摘要 本文提出了一种寻找数组中0元素出现次数的算法。核心思路是利用前缀和数组的特性:当两个前缀和相等时,说明中间存在一个0。具体实现步骤为:1)计算数组前缀和;2)对前缀和数组排序;3)统计连续相同元素的最大出现次数。算法时间复杂度为O(nlogn),适用于大规模数据处理。

2025-10-27 10:12:08 204

原创 线段树学习笔记[全网最舒适码风]

本文介绍了线段树的基本原理与实现方法。线段树是一种基于二叉树的常用数据结构,能够高效处理区间查询(最大值、最小值、求和等)和修改操作,时间复杂度为O(logN)。文章详细讲解了建树过程,通过分解大区间为子区间来优化查询效率。重点阐述了区间修改的实现技巧,特别是使用"延迟标记"来避免重复计算,通过标记下传机制保证数据正确性。最后讨论了区间覆盖和区间累加两种操作的区别与实现注意事项,并提供了完整的代码示例。线段树是解决动态区间问题的强大工具,在算法竞赛中有广泛应用。

2025-10-22 16:16:48 695

原创 Lca 倍增算法

本文介绍了求LCA的倍增算法原理与实现。该算法通过预处理每个节点向上跳2^j步的祖先节点f[i][j],先将两个节点提到同一深度,再一起向上跳至公共祖先。文章详细讲解了深度预处理、f数组递推式f[i][j]=f[f[i][j-1]][j-1]以及LCA查询的具体步骤,并给出了DFS初始化、预处理和LCA查询的代码实现。该算法时间复杂度为O(nlogn),是一种高效且易于实现的LCA求解方法。

2025-09-07 10:06:46 309

原创 Tarjan学习笔记[详细]

Tarjan算法核心原理与应用 摘要:Tarjan算法是一种高效的图论算法,主要用于处理有向图和无向图的连通性问题。文章详细介绍了Tarjan算法的三种主要应用:强连通分量(SCC)检测、割点识别和桥(割边)判断。算法通过深度优先搜索(DFS)配合dfn(访问顺序)和low(可回溯最小序)数组实现,时间复杂度为O(V+E)。对于强连通分量,当dfn[u]=low[u]时判定为一个分量;对于割点,通过low[v]≥dfn[u]或根节点子节点数≥2来判定;桥的判断则依据low[v]>dfn[u]。文章包含

2025-08-15 16:05:10 939

原创 状压DP学习笔记[浅谈]

本文介绍了状态压缩动态规划(状压DP)的基本概念和应用。通过二进制位运算将状态压缩为整数来优化空间复杂度,适用于数据范围较小(16-20)的问题。文章以洛谷P1896「互不侵犯」为例,详细讲解了状态设计和转移方法,利用位运算判断国王放置的合法性。最后提供了几道状压DP的练习题,建议读者通过实践巩固这一重要算法。适合有一定动态规划基础的OI选手学习参考。

2025-07-21 16:55:35 767

原创 1024程序员节-回首我与OI的故事[附赠各种优质实用网站]

在这一年中,发生了更多的事,换老师,外地集训,但实力也有了显著的提升,对于OI的喜爱也更深了,我思考过,学习OI到底是为了什么,是为了升学还是工作,有还是单纯的一种兴趣爱好,但想到最后,我发现,学习OI并不是为了什么,如果真的是为了什么,那我认为是为了所有,不管是上面的哪一种,都仅仅是学习OI的一种附赠品,既然选择了OI无论是为了什么都应该要走下去,半途而废,那将一无所有。步入初中,从小学到初一,这段时间由于小升初没什么作业,就成天在老师那里学编程,一个暑假,有了许多个第一次。CSP-J 2023 回忆。

2024-10-25 09:11:09 774 1

原创 反悔贪心学习笔记[浅谈]

贪心是信息学竞赛常考内容,一般来说为选择当前情况下最优情况的算法,非常好写,但部分贪心题目无法使用普通贪心解决,在这些题目中就有一类为反悔贪心。中减去大顶堆中的数(所需时间),因为大顶堆顶的数是最大的,所以减去后可以省下最多的时间,及之后可以修更多的建筑。,否则就体现出反悔贪心的精髓了,我们把大根堆堆顶的数删去,然后从。本题很容易发现可以使用贪心来解决,具体地,我们将读入的数据按照。从小到大排序,然后遍历一遍,然后先把所需要的时间加到。中然后将这次所用的时间放入一个大根堆中,然后判断。

2024-10-24 19:32:15 650

原创 CSP官方最新C++编辑器下载以及CSP提醒

这个编辑器有些特殊,如果你写中文的注释,一般你换行之后就无法看到了,解决这个问题很简单,先在工具-编辑器选项-显示中找到 ID 27071 ... 点掉那个√,即可解决这个问题。CSP从去年开始,对于评测代码都开启了O2优化,使得所有STL的运行速度都有了显著提升,并提供了一款红色的C++编辑器即 Embarcadero Dev-c++。5.如果写了深搜但是肯定过不了或者需要剪枝但是不会剪枝可以卡时(每次进入深搜都cnt++,如果Cnt超过一定的数值就退出,具体按照考场题目时限决定)。

2024-10-24 12:14:37 1301 2

原创 最小生成树 学习记录[浅谈]

最小生成树是一种常见的图论问题,具体表现为给以一张图,请你在保证他连通的情况下,使他所有边权之和最小。对于这一类问题有两种解决方法,第一种为Kruskal第二种为Prim。两种算法各有各自的优势,Kruskal时间复杂度为mlogmPrim则为n2不同情况下应采用不同的方案。

2024-10-24 10:23:26 793

原创 题解:P6342 [CCO2017] Vera 与道路建设 [洛谷]

比较简单的构造题。

2024-10-24 09:40:46 752

原创 普通版-回首我与OI的故事[附赠各种优质实用网站]

文中包含了实用网站,娱乐网站等大家喜欢的网站!回馈粉丝们

2024-10-24 09:37:54 1357 4

原创 KMP & 字符串哈希 [学习笔记] 浅谈

字符串入门算法,字符串哈希&KMP

2024-10-23 08:30:02 1035

原创 C++多款质量游戏及开发建议[OIER建议]

但是,很多人信息学竞赛生(博主)为了竞赛都学习了C++,但自小就认为编程就是开发游戏的我们,肯定想着开发一个游戏,但发现C++的局限性以及无法和windows非常好的兼容(注意是非常好,不是不能),导致无法开发大型游戏,但是,对于一些基础的文字类和剧情类游戏还是可以开发的。

2024-10-17 09:24:26 876

原创 题解:CF181B Number of Triplets 【洛谷】

的中点,既然是要重点,那我们可以直接联想到中点公式。知道了这个定理后,我们只需要暴力枚举即可,还有一个细节要注意,如果。是个奇数,那么就不存在可行的中点了,毕竟输入的都是整数。前置芝士:初中数学中的坐标系和中点公式。

2024-10-17 09:04:27 700

原创 题解:UVA846 Steps

数学题,分析题意我们可以发现,其实就是让你构造一个序列使得这个序列中所有数的和为x−y。然后要这个序列最短。我们按照题意可以利用贪心的思想,容易发现这个序列应该是由一个非严格单调递增序列和一个非严格单调递减序列组成的。例如样例中从45到49距离为4,我们可以构造序列121即可满足题目条件,而这个序列的长度3则为答案。于是我们可以分类讨论,如果y−x是一个完全平方数那么 就可以构造出一个回文的序列,例如1234321。

2024-08-08 08:46:06 745

原创 如何建立一个体系完成的团队?

记得在一定时间内发布赛后总结帖,然后发个Ad(呃呃呃)。最后,祝贺大家早日出上洛谷公开赛!

2024-07-21 20:23:00 673

原创 优先队列[学习笔记]

大顶堆 (只有顶最大,其他元素不保证按从大到小排列)queue_priority q(变量名);小顶堆 (只有顶最小,其他元素不保证按从小到大排列);

2024-07-21 19:32:01 212

原创 C++出题秘籍

洛谷是个好东西可不仅仅因为其丰富的题库资源,还因为洛谷的各个公开赛。公开赛肯定不能全是洛谷官方出的,。那么广大的用户是如何出编程题目的呢?

2024-07-20 19:42:51 745

原创 T476593 星月的建筑游戏题解

打出了代码的大佬应该可以发现,上述思路使用了两个dp来维护转移,那么,简化dp即可减小时间复杂度。(其实就是三边长),用积分计算公式($f_i+16 \times S^2 $) 更新状态即可。(具体意义看一下题面),然后直接用upper_bound/lower_bound找到。想到这一点之后,我们就可以用余弦定理从小到大枚举。,那么只需要找到⼀个数据结构⽀持单点删除,查询。,然后再枚举r,并维护一个set记录。的前去后计算面积并更新dp的值,) ,那么每⼀轮要做的事情就是在。这个是可以⽤并查集维护的。

2024-07-19 20:24:35 1917

原创 题解:CF1978B New Bakery

其实仅仅需要分类讨论两种情况,每组数据会输入。当然这种情况时,我们还要算上一部分的。这时我们只需要利用等差数列计算出。这种情况了,因为完全没有必要,连。而对于另外一种情况,我们要先求出。小所以这种情况是我们直接输出。所以这种情况的代码综合起来就是。的和,方法还是等差数列求和,提供一种更加简洁清晰的思路。中的较大数即可,那么如果。个数,所以我们只需要计算。了,那么我们也不用考虑。的差,如果他们的差大于。大,那么我们需要求出。

2024-07-19 20:22:18 507

原创 题解:P10748 [SEERC2020] Mistake

由于存在多种可行解,输出任何都可以得分。所以本题变得非常简单。因为每台机器中每个数都只有一个,所以如果出现一个了,那么下一次出现就只能给下一台机器了。然后既然输出任何解都可以得分,那么我们不妨每次都输出那个数字出现次数的机器。当然为了保证每次输出的机器编号和那个数出现个数相对应,我们要先加后用。都没用,(可能更麻烦的做法需要吧)。时,由于第一个机器已经没有。然后我们可以发现,本题中的。了故向后延续,即输出。例如:如果输出顺序是。

2024-07-18 18:52:15 849

原创 神奇的洛谷[主页篇 P1]

陈独秀同志,请你坐下,你这种行为挡住了旁边的李大钊同志发言,这让胡适同志很难受,令鲁迅同志很难堪,朱自清同志表示很尴尬,钱钟书和徐志摩同志已经在撸袖子了,所以,为了你的生命安全,请默默坐下,低调做人,你凳子上的钉子我已经给你拔掉了,凳子底下的地雷我也给你挖出来了,对面楼上的狙击手也被击毙了,下水道里的特务也被淹死了,现在能不能坐下来了?你站的地方产生了磁场.”正当爱因斯坦在考虑该抓高斯还是特斯拉的时候,发现他俩一人找了一块地板砖抱着,说:“不麻烦你老了,我们现在是磁通量B·S,去找韦伯吧.”

2024-07-18 13:33:43 1209 1

原创 题解:P10765 「CROI · R2」在相思树下 I

很显然,如果按照题目描述做的话,只能拿部分分,所以我们考虑其他思路。我们发现每次拿走的都是两个数中间的数,所以当前序列相邻两个数的差为。由于删除操作是删除所有的奇数位,所以删除的数的个数肯定是。代表了当前操作的次数,由此可以发现,如果操作为。进一步分析,由于每次删除的数的个数都是。本题虽然有些巧妙,但总体难度不高,适合作T1。无论如何也无法改变答案,只有操作为。观察了一下100%的数据范围,那么如果执行的是操作。假设最初答案的位置在。

2024-07-17 20:15:18 699

原创 题解:P10748 [SEERC2020] Mistake

由于存在多种可行解,输出任何都可以得分。所以本题变得非常简单。因为每台机器中每个数都只有一个,所以如果出现一个了,那么下一次出现就只能给下一台机器了。然后既然输出任何解都可以得分,那么我们不妨每次都输出那个数字出现次数的机器。当然为了保证每次输出的机器编号和那个数出现个数相对应,我们要先加后用。都没用,(可能更麻烦的做法需要吧)。时,由于第一个机器已经没有。然后我们可以发现,本题中的。例如: 如果输出顺序是。了故向后延续,即输出。

2024-07-17 19:40:53 730

原创 2023CSP-J回忆&提醒

距离今年的CSP已经很近了,该学的算法相信大家已经学了,有多少小伙伴是今年第一次参加呢?这篇文章不仅是对我首次CSP的记录回忆,也是对今年CSP的提醒,毕竟一个坑不等掉两次嘛。

2024-07-17 18:55:21 750 3

原创 浅浅谈C++编写游戏(附带游戏!)

如果大家真的真的想开发一款游戏的话,如果是大佬,一般会用java和python,如果你是初学者,那还使用scratch吧,用C++编写确实不太合适。回归正题。

2024-07-17 14:36:54 485

原创 浅谈单调队列,[学习笔记]

非常基础的数据结构,也很实用。

2024-07-17 13:52:54 351

原创 题解:CF586B Laurenty and Shop

存好图后,其实就是普通的最短路,但是这道题目因为有的地方走过后就不能再走了,所以需要记录最短路线,并删去,十分麻烦,所以还是推荐上述方法。可以使用同一个数组,因为红绿灯是双向的,所以无需考虑过去和回来直接枚举,然后把最快的两条路径求和即可。枚举好之后,只需要找到耗费时间最少的两条路径,然后把他们的耗费时间加起来即可。然后枚举路径,因为不能往回走,所以,如果你上面走到了。用来保存各个路径所耗费的时间,数组中应有。首先,给每条路径都加上中间路耗费的时间。,所以可以直接暴力枚举,简单省事。第二种思路是最短路!

2024-07-16 18:04:45 456 1

原创 CF295A Greg and Array 题解

所有核心代码都已经给出了,剩下的大家应该可以搞定。本题主要考察对线段树区间求和的运用,难度适中,希望本蒟蒻的首篇题解对大家有帮助。

2024-07-16 17:15:13 588

原创 星月工作室信息组团队/XYOI

2023] CSP提高 一等奖 [2023] NOIP 一等奖 [2024] WC 金牌 [2024] APIO 金牌。[2022] CSP提高 一等奖 [2022] NOIP 一等奖 [2023] WC 银牌 [2023] NOI 银牌。[2020] APIO 银牌 [2021] WC 银牌 [2021] CSP提高 一等奖 [2022] WC 金牌。[2022] CSP提高 一等奖 [2023] APIO线上 铜牌 [2023] CSP提高 一等奖(满分)诚邀各大OIER加入我们!

2024-07-16 16:40:52 338

原创 C++竞赛优化技巧与考场实用技巧

实践出真知,刷题量成就大牛。编程是练出来的,不是听/看出来的,大家要多刷题,多练习,多比赛增加实战经验。祝大家 CSP/NOIP 2024 RP++。本文因为时间仓促,有许多细节之处尚未完善,请诸位OIER踊跃提出,帮助本文更加完善!本文有很多内容参考了洛谷出品的深入浅出进阶篇,推荐大家看一看,书中内容更加丰富。

2024-07-16 16:31:57 3162

原创 我的创作纪念日

一个偶然的机会认识了优快云。

2023-04-09 16:01:12 174 1

原创 浅谈队列(仅含有基础)

c++队列浅谈

2022-12-04 18:21:37 159

19个高品质Dev-c++可运行C++游戏

我用3天整合的c++游戏保证可以运行 游戏目录 1.打方块 2.打飞机 3.打怪 4.歹徒逃亡(强烈推荐) 5哈利波特 6技能大乱斗 7井字游戏 8狼人杀 9密室逃脱 10全民枪王 11三国杀 12扫雷 13世界战争 14贪吃蛇 15坦克大战(彩色) 16文章生成器 17小岛战争 18野外生存 19游戏? 点赞加关注下次整合更多!!!

2022-11-28

空空如也

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

TA关注的人

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