自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 20260709杂题训练

本文摘要了三道算法竞赛题目及其解法: 世界树:处理树上多个关键点的管辖范围问题。通过构建虚树,搜索最近关键点,并利用链上二分统计管辖结点数。 Monster-Go:构造玩家清单使其唯一最先集齐。通过分析集合性质,推广轮换去除元素的构造方法,满足无平局条件。 甲苯先生的滚榜:动态维护选手排名。使用平衡树(如FHQ-treap)高效处理每次AC事件后的排名查询,复杂度O(Tn log m)。 总结指出,比赛中通过模板题(T1、T3)和从特殊推广到一般的策略(T2)解决问题。

2026-07-09 22:12:19 354

原创 20260607模拟赛总结

本次比赛出现的主要问题是时间分配不当。第一题因犹豫不决浪费2.5小时,实际剪枝后轻松通过;第三题初期误判为NP问题,后通过贪心解法解决;第四题因审题失误错过75分暴力解法,第二题甚至未尝试。教训是:赛前需做好时间规划,以正式比赛心态对待模拟赛,重视部分分获取,并仔细审题避免理解偏差。(149字)

2026-06-07 15:49:19 158

原创 20260606模拟赛总结

这篇比赛总结反思了三个题目的得失:T1因排序函数未遵循严格弱序规则导致挂分(从100降至63分);T3因提前考虑细节并使用对拍未出错;T4因分治实现复杂且inf值设置不当失分。作者指出应减少对大样例的依赖,避免低级错误,并肯定了自己灵活调整策略的优点(如优先解决简单题)。关键教训包括:注意比较函数的严格弱序要求,以及重视小数据验证和参数设置检查。

2026-06-07 15:27:36 181

原创 20260603

摘要 本文包含三道算法题的解题思路与代码实现: A - XOR和路径:计算无向图中从起点到终点的路径边权异或和的期望。通过按位处理和高斯消元求解,时间复杂度O(n³log a)。 B - 数字根:求序列区间内前5大数字根值。利用数字根性质(等于模9)和线段树维护区间信息,复杂度O(9(n+Q)logn),需特殊处理0的情况。 C - 玄武密码:在母串中匹配多模式串的最长前缀。使用AC自动机进行多模式匹配,通过拓扑排序优化,时间复杂度O(n+m|t|)。 每道题均给出了核心思路、关键公式和C++实现代码。

2026-06-03 19:53:09 177

原创 20260601

这篇文章摘要如下: 题目A要求计算多个立方体并集的表面积,采用三维差分数组标记覆盖区域后,通过BFS统计未被覆盖的相邻面数。题目B是动态维护无向图最小生成树的问题,使用LCT(Link-Cut Tree)结合线段树分治处理边的权值修改,通过离线操作将删边转化为区间覆盖,在保证连通性的同时动态更新MST边权和。两题分别展示了针对小数据范围的暴力技巧和高效处理动态图的算法组合。

2026-06-01 20:59:38 233

原创 20260526

本文包含两个算法问题的分析与解法: 数字序列问题:给定长度为n的序列,每个位置填0-3的数字,需满足相邻数字限制和m个约束条件。分析表明合法序列具有特定模式(如0303030),通过奇偶性分析和2-SAT建模可求解。关键点是将数字按奇偶位分组,转化为约束满足问题。 最小生成树问题:通过操作使指定边Lab必出现在MST中。解法是将问题转化为最小割,构建边权小于Lab的边的网络,边权设为val_id-val_i+1,求使Lab两端点不连通的最小割即为最少操作次数。适用于n≤500,m≤800的图。

2026-05-26 21:18:15 43

原创 20260525

本文摘要: A题考察从区间[L,H]选取N个数使GCD恰好为K的方案数,通过莫比乌斯反演和杜教筛优化时间复杂度。B题利用最小割模型解决带依赖关系的电影选择问题,构建网络流计算最大收益。C题通过二分图染色分析棋盘操作问题,根据黑白点数量关系判断解的存在性并二分求解。三题分别涉及数论、网络流和图论算法,展示了不同算法在竞赛题中的应用。

2026-05-25 16:40:28 250

原创 20260522

本文摘要: A题考察平衡树应用,要求使用FHQ-Treap处理区间翻转和查询操作,实现排序机械臂功能。B题分析特殊图结构(无长度≥4的环)的最大独立集问题,提出圆方树DP解法。C题涉及树链剖分维护动态路径查询,通过线段树记录不同行走状态的最优解来处理道馆冰面路径问题。三题均涉及高级数据结构与算法在OI竞赛中的实际应用。

2026-05-22 21:37:26 243

原创 20260521

本文讨论了三个算法竞赛题目。A题要求构造一个满足特定条件的01矩阵,通过高斯消元和bitset优化解决;B题是网格逃生问题,采用时间拆分的网络流建模;C题涉及寄存器程序模拟,重点处理循环结构,通过矩阵快速幂优化计算。三题均展示了如何将实际问题转化为数学模型并优化求解。

2026-05-21 21:15:56 223

原创 APIO2026游记

不管怎样,先打了,交selfevl 64pts,sub 3 多了一次操作,感觉应该是边界的问题,写跳了,最后再来一起改,顺便把 sub 4 想出来。10mins later,停留在 20pts 的状压,想起昨天教练的话,应该先把所有题看一遍。晚上,得知 Cu 线 116,Ag 155,要是第一题没搞那么久,说不定就 Ag 了。杜主席来了,全场热烈鼓掌。(读题+重构)*3,WA 0 pts+=3,心态 = 0,剩余时间 -= 2h+?不得不说,这学校饭堂饭菜是真好,即好吃,品种又多(虽然我只去了二楼)。

2026-05-12 18:47:40 410

原创 20260430

本文包含三个算法问题的分析与解法: 网络扩容问题:给定有向图,通过费用流计算扩容后的最大流。通过建立超级汇点和费用流模型处理扩容需求,时间复杂度为网络流复杂度。 组合数问题:求解特定组合数和的模值。采用动态规划结合矩阵快速幂优化,将O(nk)的复杂度优化为O(k^3 log(nk)),适用于大n小k的情况。 亵渎游戏问题:计算特殊条件下怪物击杀得分。利用分治法高效求解幂次和,通过递归分解将O(n)的求和优化为O(m^2 log n),处理超大n值。 三个问题分别展示了网络流、组合数学和分治算法的典型应用,均

2026-05-04 15:41:09 218

原创 20260429

这篇题解讨论了三个算法问题: A题:给定DAG,求每个点能支配的点的数量。通过逆向思维,转化为求每个点被哪些点支配,利用LCA概念构建支配树,最后用DFS统计子树大小。 B题:01串合并问题,使用区间DP处理。定义状态f[l][r][x]表示区间[l,r]合并为状态x的最大价值,通过枚举分界点进行转移,注意剪枝优化。 C题:树上的异或查询问题,结合树剖分和trie树解决。对子树查询和路径查询分别处理,建议使用可持久化线段树优化时间复杂度到O(n log V)。 三题均涉及图论、动态规划和数据结构的高级应用,

2026-04-29 21:34:31 203

原创 20260422

本文摘要:A题采用费用流建模,通过超级源点、月份节点和汇点构建网络流模型,考虑购买、使用和存储的费用。B题将礼物问题转化为多项式展开,利用二次函数求极值和NTT处理旋转对应关系的最值。C题解决火星商店的二维查询问题,结合树状数组套Trie树和可持久化技术,在时间与空间维度上实现高效查询,时间复杂度为O(n log²n)。三题分别展示了网络流、多项式变换和数据结构在算法竞赛中的典型应用。

2026-04-22 17:47:23 34

原创 20260410

本文摘要: 本文包含三个算法问题的解决方案: 问题A(体育课):采用分块算法处理区间查询和修改操作,通过维护块内最大值并分析其变化次数,实现O((n+q)√n)的时间复杂度。 问题B(机动训练):利用经典技巧,将方案数问题转化为两个相同地图中两人走相同路径的概率问题,采用记忆化搜索求解。 问题C(守卫):使用动态规划方法,预处理每个监视点的可视范围,通过树状数组优化状态转移,最终达到O(n²logn)的时间复杂度。 三个问题分别展示了分块处理、概率转化和动态规划优化的算法设计技巧。

2026-04-20 10:00:17 43

原创 20260413

本文讨论了三个算法竞赛题目:A题通过费用流解决象棋棋子移动问题,证明可以通过调整顺序避免冲突;B题针对魔法咒语问题提出两种解法,小数据用容斥和DP,大数据用AC自动机和矩阵快速幂;C题关于树的重心问题,分两种情况讨论并给出了相应的动态规划解法。各题都展示了如何将复杂问题转化为经典算法模型,体现了算法设计中的灵活性和创造性。

2026-04-20 09:40:40 43

原创 NOIP2025游记

摘要 本文记录了作者参加编程竞赛的经历与反思。赛前因发烧状态不佳,比赛中仅完成简单题目,其余题目靠暴力解法获得部分分数,最终以172分获得一等奖。作者总结认为实力不足是主要问题,今后需加强难题训练,尤其在数学和字符串方面,同时避免轻视简单题的小失误。文章以"No cross, no crown"作结,表达了克服困难、追求成功的决心。(148字)

2026-04-20 09:20:19 156

原创 20260414

只用找到第一个比自己小的点,判断它是否有右儿子,没有直接插,否则插入到右儿子的左儿子里,在修改一下深度,父子关系等。个,可以对于每一个点,记录一下与它相邻的点颜色为 A,B,C 分别的一个 set。一次操作其实相当于将它右儿子接到它父节点的左儿子上,在把自己当作根节点,右儿子原根节点,左儿子为空。假如知道了这些,很容易想到可以先将原本的所有 key 值离散化,后面操作其实就都可以在线段树上去做。发现赛时的后 50% 不会做,每次修改一个点,假如正常图没有问题,菊花图就会炸。个点,叶子节点相距最远的距离。

2026-04-20 09:15:24 196

原创 20260415

对于这种字符串的题,假如要包含若干个字符串为其字串,可以建 AC 自动机;而对于类似公共子序列可以分别建子序列自动机,记忆化搜索。而这道题正是两个相结合。

2026-04-20 08:59:11 225

原创 20260408

先考虑什么情况下小 A 可以胜利。类似于2k​个数,每次操作是将1d个数修改成任意小于原数的非负整数,看先手是否能通过若干轮最终将所有数变成0。博弈论,

2026-04-08 22:22:26 52

原创 20260325

这样不能保证出度的限制。就是网络流,最小费用最大流,拆点,分为接收点和发射点,S 向接收点连。神秘结论题,先注意到在同一边,一个圆是覆盖一段区间,直接 dp。问题转化成:整个图是个 DAG,要使得每个点都有至少为。考虑新多一个点,类似贪心,无法保证正确性。,所以要求的答案就是原图任意两点的距离和。,方案数可以通过分子树内和子树外两部分算。有点像网络流,但好像不大好做。建一个超级原点,向每个点连。首先按那样的树的生成方式是。将每条边分开计算,贡献为。的入度,出度小于等于。,求所选边权和最小值。

2026-03-27 22:16:18 46

原创 20260324

可以二分分界值,判断大于等于这个值的所有值之和是否大于等于。,所以不用二分,直接暴力枚举,并计算个数和总和即可。感觉其实是将类似“恰好”转化成“任意”,假如令。感觉只要构建出来这个图形,直接暴力求解即可。好像是错的,看了题解,要用二项式反演。种颜色,且每种颜色出现次数都不是。,由于 3s,常数较小,应该能过。从大到小枚举分界值,暴力算即可。回到这道题,还是一样考虑恰好为。为“任意”特定结构的方案数。次的颜色,并统计方案。好像两个都可以这样算,的特定结构的方案数,可用NTT优化卷积。

2026-03-25 22:02:43 176

原创 20260323

由于以前玩过,印象中好像是每次去把最左边的给取下,然后变成少一个的解法。首先可以被选择的点只有可能它的子树大小为。第二个问题感觉类似一个拓扑一样,直接搜索。然后,只用每次判断一下即可。想要拆掉最左边,必定形如。,接下来又要想办法变出。答案通过两个计算即可,第一个问题模拟即可。最难的地方在高精度。暴力转移,压位即可。

2026-03-23 19:51:43 58

原创 20260320

只做了一道题。

2026-03-20 19:01:29 38

原创 三月做题记录

线段树套线性基模板。看了题解,感觉很妙。首先,注意到题目要支持可持久化的操作,但是没有要求强制在线,于是可以用操作树(个人感觉就相当于把历史状态关系建成了一棵树),大概代码如下。放到这题,类似并查集,又可撤销。只需要用可撤销并查集,用按秩合并即可。接下来,求第k大,查询。套个分块就行了。用cntBlocki,表示第i个并查集a数组编号所在块为 Block 的总数。然而,MLE。20MB?调整块长,卡卡,。改成就会变慢,原因是访问地址什么的。赛时发现好像可以费用流,只用把每个a。

2026-03-09 21:57:36 562

原创 题解:P10856 【MX-X2-T5】「Cfz Round 4」Xor-Forces

考虑线段树,那么一段区间所作的贡献即为左右两段区间的贡献之和,如果左子树右端和右子树左端相等,则减一,否则不做贡献。然后继续向下继续异或操作,由于异或具有交换律,我们只有在询问的时候考虑异或操作,修改直接。由题意得,一段区间颜色段个数可以转化为区间长度减去相邻同色个数,即区间。,那么我们可以预处理,对于每一个答案提前求出来。但是,在查询时,每次都修改、打标记,就超时了!首先,我们先考虑简单的情况,没有修改操作。棵线段树,所以我们可以用可持久化线段树。次,每次查询一棵线段树,所以查询为。

2025-11-09 11:22:56 364

原创 CSP2025游记&总结

还是不能一直死磕太久,要放一放,有时可以写把部分分打了再想正解。下次比赛应该做到调整比赛策略,合理分配时间,保持好心态。

2025-11-08 18:24:23 1574

原创 基础排序算法

希尔排序是一种基于插入排序的排序算法,通过对数组进行分组并逐渐减小组间距,改善了插入排序的效率。它通过提前移动远距离的元素,使得数据逐步接近有序,从而减少后续排序的交换次数。比插入排序快:希尔排序相对于直接插入排序有显著的性能提升,尤其是对于较大的数组。原地排序:无需额外的内存空间,空间复杂度为O1O(1)O1。适应性强:可以适应各种规模的数组,尤其在数组规模较大时表现较好。

2024-11-14 21:31:53 1260 1

原创 题解:AT_abc147_f [ABC147F] Sum Difference

在一个等差数列中取出若干个元素,求取出的元素与未取出的元素的差值有多少种可能。余数相等的放到一起,求一下区间覆盖即可。是一个定值,所以我们只需求出。个数,那它们的总和必定为。不难看出,最小的肯定是选前。所以,假如我们选取了。所以,我们可以直接把。

2024-08-21 08:33:35 1159

原创 题解:AT_abc113_d [ABC113D] Number of Amidakuji

出发,每次遇到横线时都选择经过它,并且不存在两条端点重合的横线,一条横线的两端点必须在同一高度,一条横线连接的需要是相邻的两条竖线。在此之前,我们需要先求一个东西,我们定义。个位置放边的方案数。个位置不放边的方案数,定义。到达,即一个点上面三个点。从右上的点推出的也同理。

2024-08-21 08:32:49 1229

原创 题解:AT_abc131_f [ABC131F] Must Be Rectangular!

我们很容易看出,导致超时的其实就是合并后将两个点的坐标的可能更新太慢。我们可以将横坐标相同的点的编号合并,再将纵坐标相同的点的编号合并,我们就可以得到联通块了。其次,我们可以再合并的时候比较一下怎样合并次数更少,就用那种方法合并。求出横坐标和纵坐标分别有多少个不重复的坐标,也就是联通块的长度和宽度。图一中黑圆代表原本有的点,图二的红勾代表新增的点。我们不难发现,其实题目就是想让我们找出若干联通块,让每个联通块拼成一个长方形。个点,则可以添加剩下那一个点,求最多可以多放多少个点。于是,我们不难调出如下代码。

2024-08-01 16:17:08 505

原创 [ABC202E] Count Descendants 题解

这道题,我们可以用利用两次搜索,第一次先将统计每一个点的孩子统计出来,并且记录一下当前这个点到根节点经过了多少个点。而第二次搜索呢,我们记录一下每一个点是在第次搜索搜到的和当前这一次遍历所用的点到根节点经过了多少个点。接着,每一次询问,我们只需要遍历一次就行了,而遍历的起点则是这个点是第几个被搜索到的,终点是起点加上它的孩子的数量减去一。分块的基本思想是,通过对原数据的适当划分,并在划分后的每一个块上预处理部分信息,从而较一般的暴力算法取得更优的时间复杂度。的子树中,到根的最短路径刚好经过。

2024-04-14 12:20:09 848

原创 题解:AT_abc017_3 [ABC017C] ハイスコア

所以,我们可以使用差分数组来优化(线段树也可以)。考虑贪心,我们只用留下任意一个宝石即可。个宝石都被探索后,得分将会清零。

2024-04-14 12:15:36 870

原创 AT_abc247_f [ABC247F] Cards 题解

张卡片,每张卡片的正面、反面都有一个数字。张卡片中选择一些,使得牌上的数字包含。的进行合并,其次我们可以用。接下来,我们要推出集合元素为。的方案数量,则答案就是为。考虑使用并查集和动态规划。的方案数量,我们假设用。张卡片的正面的数字为。问有多少种选择的方式。我们可以将正面数字为。

2024-01-29 20:50:18 787

原创 AT_abc287_f [ABC287F] Components 题解

由题意得,我们假如不选,则子节点可选可不选。如果选,则子节点要是选则选的块数是一样的,要是不选就要多加一块。的所有顶点和这些顶点之间的所有边,这些边的两个端点都必须在。不难看出这题是一道树形动态规划,我们可以用。个连通块的诱导子图的数量。个节点的树,顶点标号为。

2024-01-26 20:28:36 765 1

原创 AT_abc287_d [ABC287D] Match or Not 题解

看看是否符合,不符合的话我们就记录一下并且将。部分代表该位置可以被替换成任意的小写字母。这道题我们可以先使用一个字符串。符合了并且原本是不符合的就讲。不符合了并且原本是符合的就讲。,它们仅由小写字母和字符。请你设计程序,对于所有的。我们可以继续用回原本的。位的字符串,接着遍历。不难发现,我们更改的第。

2023-12-09 21:20:27 1237

原创 线段树笔记

线段树笔记

2023-11-26 11:30:59 607 2

原创 [JSOI2008] 最大数题解

现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。Q L功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。L不超过当前数列的长度。L02、 插入操作。A n功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。n是整数(可能为负数)并且在长整范围内。注意:初始时数列是空的,没有一个数。

2023-11-26 10:09:06 1212 1

原创 扶苏的问题题解

扶苏的问题题解

2023-11-26 08:48:21 1118 1

原创 [ABC107C] Candles 题解

[ABC107C] Candles 题解

2023-11-19 14:05:51 179

原创 P3112 [USACO14DEC] Guard Mark G 题解

[USACO14DEC] Guard Mark G 题解

2023-11-19 14:04:21 179

scratch游戏-忍者

scratch游戏——忍者 来源:同学 适用人群:所有 难度:中等 语言:scratch,mind+

2024-03-24

C++实现的小游戏-扫雷

名称:扫雷 使用人群:all 语言:c++ 使用方法:用c++打开此文件,运行,根据提示便可以使用了

2024-02-02

空空如也

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

TA关注的人

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