- 博客(28)
- 收藏
- 关注
原创 Codeforces Round 1086 (Div. 2) 题解
本文摘要:Codeforces Round 1086题解,包含4道算法题的解题思路与代码实现。A题通过统计糖果颜色出现次数判断网格合法性;B题采用贪心策略模拟取牌过程;C题使用动态规划计算最优任务选择方案;D题通过可达性矩阵分析构造树结构。所有题目均给出详细解法与复杂度分析,代码实现简洁高效。
2026-03-15 21:25:44
469
原创 TopCoder10741 ColorfulMaze 题解
本文研究了一个基于字符串数组表示的迷宫问题,其中起点为$,终点为!。迷宫包含多种格子类型:墙(#)、普通空地(-)、带颜色的空地(A-G)。每种颜色格子有独立的危险概率,但危险颜色未知。玩家在移动过程中若两次踏入危险颜色格子就会死亡。目标是找到最优路径以最大化安全到达终点的概率。 作者提出了一种动态规划方法,状态定义为$dp(i,j,x,mask)$,表示当前位置$(i,j)$、已探索颜色集合$mask$、已知危险颜色$x$时的最大生存概率。通过处理状态转移中的环结构,并利用并查集优化求解过程,最终计算出最
2026-03-08 20:38:01
34
原创 AtCoder Beginner Contest 446 题解
ABC446 题解:A 首字母小写并加 Of;B 贪心按顾客顺序选未被取的果汁;C 用队列模拟进货、消费与过期;D 用map dp求最长相邻递增子序列;E 建状态图反向DFS计合法(x,y);F 用最小化到达上界并增量统计需删点;G 用出现位置与前缀和dp计221子序列数。
2026-02-22 12:40:19
1032
原创 【LGR-271-Div.3】洛谷基础赛 #31 题解
这是一场Div3比赛的题解。A题红包是简单的模拟题。B题春运涉及周期性问题,通过模$n \times m$进行分块处理。C题烟花使用动态规划,记录能满足条件的最小和最大斜率来判断转移。D题拜年是矩阵乘法优化双指针的板子题,用线段树维护$2\times2$矩阵实现连通性查询。
2026-02-17 02:00:00
866
原创 Codeforces Round 1080 (Div. 3) 题解
本文是CodeForces Div3比赛的题解集合。A题判断数列中是否存在特定质数67。B题探讨排列能否通过特定交换操作($a_i \leftrightarrow a_{2i}$)排序。C题利用动态规划求解将序列修改为合法“骰子掷出序列”的最小操作数。D题通过差分法从函数值还原原始序列。E和G题解决二叉树上带有复杂移动规则的问题,通过DP、欧拉序列和倍增进行优化。F题通过排序和动态规划寻找最大不相交二次函数子集。H题是几何构造题,目标是在网格中划分面积为1/2的不重叠三角形,通常采用分块覆盖策略。
2026-02-16 01:26:03
1611
原创 CF2196C2 Interactive Graph (Hard Version) 题解
本文提出了一种解决交互式DAG边重构问题的高效算法。通过递归计算每个顶点的路径计数cnt_v,算法利用路径字典序特性,以最多n+m次询问确定所有边。关键思路是将问题转化为路径前缀匹配,通过连续询问探测邻接关系。实现中维护路径缓存和动态更新询问位置K,最终输出所有边。算法时间复杂度与边数线性相关,适用于n≤30的规模。
2026-02-15 13:04:00
457
原创 AtCoder Beginner Contest 445 题解
文章总结AtCoder比赛题解。A、B题模拟字符串操作。C题棋子按规则移动,求最终位置。D题巧克力碎片重构,使用map匹配。E题求除一项外的LCM,利用质因数分解。F题最短K步回路,通过矩阵快速幂。G题骑士放置,转换为二分图最大匹配。
2026-02-14 22:49:29
704
原创 AWC0002E Assortment of Sweets 题解
摘要: 该问题要求从N种糖果中选择若干种,使其总价格恰好为S。由于N≤40,直接枚举所有子集不可行。采用折半搜索(Meet-in-the-middle)优化:将糖果分为两组,分别预处理每组所有可能的子集和,然后对其中一组排序,通过二分查找统计满足条件的组合数。算法复杂度从O(2^N)优化至O(N·2^(N/2)),适用于较大规模的输入。代码实现了分组枚举、排序及二分匹配的逻辑。
2026-02-13 00:58:19
257
原创 AWC0001A Bacteria Growth Experiment 题解
摘要:题目研究细菌群落的增长过程,初始时有1个大小为1的群落。每次增长时,每个群落会产生一个大小为自身2倍的新群落。经过K次增长后,求不同大小的群落种类数。通过分析发现,每次增长会新增1种大小,因此最终种类数为K+1。由于K的范围很大(1≤K≤10^18),需使用long long类型存储结果。
2026-02-13 00:57:16
262
原创 Codeforces Round 1079 (Div. 2) 题解
本文总结了一场Codeforces Div2比赛中的六道题目。A题“Friendly Numbers”通过在给定数值x附近小范围搜索来计算满足特定条件的“友好数”。B题“Array and Permutation”判断排列能否通过相邻替换变为目标数组,关键在于处理数组中不重复元素的相对索引。C题“Game with a Fraction”分析表达式3p-2q的状态来决定Alice和Bob的胜负。D题“Another Problem about Beautiful Pairs”利用根号分治策略高效计算满足a_
2026-02-12 02:25:12
1749
1
原创 洛谷 P7114 [NOIP2020] 字符串匹配 题解
本文提供洛谷P7114字符串匹配题解。核心任务是将字符串S分解为(AB)^iC形式,并满足f(A)小于等于f(C)的条件。解法利用Z函数预处理最长公共前缀以确定最大循环次数,并根据循环奇偶性讨论f(C)的变化。通过枚举AB长度并动态维护频率桶,配合前缀和优化查询计数,实现了高效的线性时间复杂度求解。
2026-02-11 08:47:10
981
原创 AtCoder Weekday Contest 0002 Beta 题解
本文提供 AtCoder Weekday Contest 0002 Beta A-E 题详尽题解。内容涵盖基础查找、条件统计、数学推导求极值、排序双指针贪心算法,以及针对较大规模子集和问题的折半搜索。每题均配有详细思路讲解与 C++ 代码实现,由浅入深介绍多种算法技巧,适合初学者进行针对性练习。
2026-02-11 08:45:18
970
原创 Codeforces Round 1078 (Div. 2)
本文是Codeforces Round 1078题解摘录。A-C题涵盖贪心、枚举与位运算优化循环节;D题使用DP范围维护和路径回溯;E题通过预处理路径解决极小极大博弈;F题结合线性基状态压缩、树形DP与快速沃尔什变换(FWHT)实现高效异或计数。全文涵盖了进阶动态规划、图论博弈及代数优化等竞赛核心算法。
2026-02-10 06:56:58
1021
1
原创 AtCoder Weekday Contest 0001 Beta 简要题解
本文是 AtCoder Weekday Contest 0001 Beta 的详细题解,涵盖 A-E 题。内容涉及数学规律发现、条件最值查找、贪心排序优化、带限制的背包型 DP 以及单调队列维护滑动窗口最值。全文思路清晰并附有 C++ 参考代码,适合初学者系统掌握基础数学、动态规划及高级数据结构的应用。
2026-02-10 06:38:29
606
原创 bzoj1511 [POI2006]OKR-Periods of Words 题解
摘要:本文提出了一种利用KMP算法求解字符串前缀匹配问题的方法。通过计算字符串S[1~i]的最小border长度L,可以得出前缀i的匹配结果为i-L。算法实现中,先预处理得到KMP的pi数组,再通过动态规划优化计算结果,最终输出所有前缀匹配结果之和。该方法的时间复杂度为O(n),适用于大规模字符串处理。
2026-02-09 08:33:22
237
原创 【LGR-266-Div.2】洛谷 2 月月赛 I &「CROI」Round 3 简要题解
本文是洛谷2月月赛Div2的题解,包含A、B、C三题的解题思路。A题通过贪心算法将车道费用和车辆限制排序后计算最小总费用;B题使用极长连乘段维护表达式结果,处理动态修改操作;C题则采用矩阵快速幂优化状态转移,处理大规模数据下的铺砖方案数问题。三题均利用了排序、二分查找、动态维护等算法技巧,时间复杂度控制在O(n log n)或更低。
2026-02-09 08:33:01
1482
原创 HDU6761 Minimum Index 题解
摘要:本文研究了字符串的最小索引问题,要求计算所有前缀的最小索引加权和。通过Lyndon分解和Duval算法,处理三种字符比较情况来维护最小索引。算法时间复杂度为O(n),适用于长度达2×10^7的字符串。代码实现了该算法,使用模运算处理大数结果。
2026-02-08 13:03:30
760
原创 AtCoder Beginner Contest 444 简要题解
本文介绍了AtCoder Beginner Contest 444的解题思路。A题判断数字是否全相同,B题计算数位和等于k的数的个数,C题通过排序和分类讨论处理特殊数列,D题利用差分处理大数相加问题,E题使用双指针和BIT统计满足条件的数对。F题提出二分答案的解法,通过性质优化计算。G题涉及高斯整数和圆的方程变换。各题解法注重算法选择和实现细节,适合编程竞赛选手参考学习。
2026-02-08 13:03:07
1274
原创 CSES1733 Finding Periods 题解
摘要:本文提出了利用Z函数求解字符串所有可能循环节的方法。通过计算字符串的Z数组,若满足z[i] + i - 1 = n,则子串S[1..i-1]是一个有效循环节。算法时间复杂度为O(n),适用于处理部分循环节的情况。代码实现展示了如何通过Z函数快速找到所有符合条件的循环节长度。
2026-02-07 10:11:53
118
原创 CSES1732 Finding Borders 题解
摘要:本文介绍了使用KMP算法求解字符串所有border长度的方法。通过预处理得到前缀函数数组pi后,从字符串末尾开始回溯pi数组,将非零的pi值逆序输出即为所有border长度。代码实现包括KMP预处理和结果输出两部分,时间复杂度为O(n)。适用于解决CSES 1732等字符串匹配问题。
2026-02-07 10:11:36
151
原创 洛谷 P3375 【模板】KMP 题解
KMP算法是一种高效的字符串匹配算法,核心思想是利用前缀函数避免不必要的回溯。前缀函数π[i]记录模式串T[1...i]的最长相等真前后缀长度。算法分为两步:1)预处理模式串计算π数组;2)在主串S中匹配T,失配时利用π数组调整位置而不回溯主串指针。时间复杂度为O(n+m),空间复杂度O(m)。洛谷模板题P3375给出了完整实现代码,包括π数组计算和匹配过程,最终输出所有匹配位置和π数组值。
2026-02-06 15:39:09
991
原创 P13235 [GCJ 2015 Finals] Pretty Good Proportion 题解
本文提出了一种基于前缀和的01子串比例求解方法。通过将字符转换为(1-F)或-F的数值并计算前缀和,将问题转化为寻找相邻排序前缀和间的最优解。文章给出了该方法的数学证明,并指出时间复杂度为O(n log n)。代码实现时需要注意精度问题,使用long double类型。该方法适用于求解01字符串中比例最接近给定值F的子串起始位置问题。
2026-02-05 19:17:25
828
原创 CF1710E Two Arrays 题解
否则一定是白色走到黑色,然后黑色走到白色,看谁先不能走。模拟赛的 T1(只不过变成了最多访问 $ 2 $ 次),感觉是史上最难 *2400。Alice 先手最小化得分,Bob 后手最大化得分,求双方最优策略下的最终得分。那么我们就是要求原图得最大匹配和去掉初始点的最大匹配,不好算,转换为求最大独立集。同时,由于所有黑色格子形成了类似轮廓线的结果,不难发现当横线的。排序后和原题是等价的,只不过起始位置可能会变,但是这不重要。感性理解发现似乎取一个左上角的矩形,再取一个右上角的子集最优?求最大匹配和判断答案。
2026-02-04 20:59:07
606
原创 CF1810G The Maximum Prefix 题解
题目摘要: 本题要求计算不同长度数组的期望得分。数组元素为±1,生成概率给定。得分基于数组的最大前缀和S对应的h_S值。采用动态规划方法,设计状态dp(i,j,0/1)表示前i位、距离目标j、是否达到目标的期望。通过状态转移方程高效计算,时间复杂度O(n^2)。代码实现利用滚动数组优化空间,最终对每个k输出期望得分模1e9+7的结果。
2026-02-04 20:57:16
835
原创 AT_agc040_c Neither AB nor BA 题解
摘要:题目要求统计长度为N的字符串(由A,B,C组成)中,能通过特定删除操作变为空串的数量。关键思路是通过字符变换将条件简化为不能删除AA或BB,然后利用组合数学计算。解法核心是预处理阶乘和逆元,用容斥原理排除非法情况,时间复杂度O(N)。代码实现了快速幂、组合数计算等关键步骤,最终通过公式3^N - 2*ΣC(N,i)*2^{N-i}得到答案。
2026-02-03 21:11:14
825
原创 CF1710E Two Arrays 题解
摘要: 本文研究了Codeforces 1710E题,这是一个在n×m网格上的博弈问题。Alice和Bob轮流移动车,目标是控制最终得分。通过分析,作者发现可以将问题转化为二分图博弈模型,并利用排序后的行列值简化问题。关键思路是二分答案,通过判断最大匹配和独立集来确定可行性。最终提出了一种O(n(logn + V))的算法,通过预处理和双指针技巧高效解决问题。代码实现了该算法,证明了其正确性和高效性。
2026-02-02 20:08:46
378
原创 Atcoder Beginner Contest 443 简要题解
本文介绍了AtCoder Beginner Contest 443的七道题目解法。A题简单字符串处理,B题通过模拟计算天数,C题记录时间差统计答案。D题采用双向扫描求最小值,E题通过动态规划处理网格可达性。F题使用BFS寻找满足条件的最小数字,G题通过数学推导转换条件表达式。所有解法均注重时间效率,主要采用线性或常数级复杂度算法。
2026-02-01 20:58:54
1376
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅