- 博客(54)
- 收藏
- 关注
原创 【洛谷 P1163】 银行贷款|浮点二分答案:金融计算
本文详细解析了洛谷 P1163 银行贷款问题的浮点二分解法。题目要求计算按月复利贷款的月利率,需满足m个月偿还后本金清零。通过二分法在0-10区间内搜索利率,利用check函数模拟每月复利还款过程,判断剩余本金是否非负。关键点在于设置1e-5的二分精度保证结果准确,输出时转换利率为百分比并保留1位小数。文章提供了完整AC代码及逐段解析,强调浮点二分的边界处理、精度控制和输出转换等易错点,并推荐同类练习题目。该解法时间复杂度为O(mlog(1/eps)),能高效处理题目数据范围。
2026-06-23 08:45:28
62
原创 【洛谷 P1902 】刺杀大使|二分答案 + DFS
本文分析了洛谷 P1902 "刺杀大使" 题目,提出了一种基于二分答案和连通性检验的解决方案。题目要求在 n×m 网格迷宫中,从首行入口出发,通过限制伤害值覆盖末行所有机关点,求最小的最大伤害代价。解题思路是:二分可能的伤害值,利用 DFS 验证能否在给定伤害限制下连通所有终点。文中详细解释了算法原理、时间复杂度分析,并提供了修正后的 AC 代码和样例推演过程。该题的核心在于将最优化问题转化为判定问题,结合网格搜索技术,适用于类似的"最小值最大化"类题目。特别提醒要注意从首行所有入口而非单个点开始搜索。
2026-06-22 09:22:08
171
原创 【洛谷 P1083】 [NOIP2012 提高组] 借教室
区间批量修改类问题优先使用差分数组,把区间操作复杂度从 (O(n)) 降至 (O(1));满足单调性的判定类问题可使用二分答案,大幅缩小判定次数;本题核心思路:二分确定待校验订单数量,差分快速批量计算每日教室占用,二者结合高效解决百万级数据。
2026-06-19 21:01:51
156
原创 【洛谷 P1314 】[NOIP2011 提高组] 聪明的质检员
这篇文章详细解析了一道矿石检验值优化问题。通过二分法寻找最佳参数W,使得总检验值与标准值的差距最小。文章从题意分析入手,通过样例拆解验证思路,提出利用前缀和数组优化区间统计,将时间复杂度从暴力解法的O(nm)降至O((n+m)logW)。代码实现中强调了long long防溢出、llabs取绝对值等关键细节,并总结了常见的错误点。最终在O(8×10^6)复杂度内高效解决问题,适用于n,m≤2×10^5的大数据场景。这是一道典型的二分答案与前缀和结合的优化问题。
2026-06-18 18:52:00
314
原创 【洛谷 P2678】 [NOIP2015 提高组] 跳石头 超详细题解
题目要求移走最多M块石头后,相邻石头的最小跳跃距离最大化。通过分析,这是一个典型的二分答案问题,利用单调性可以高效求解。 方法思路: 二分搜索:在0到河道总长L的范围内,通过二分法枚举可能的最小跳跃距离。 可行性验证:对于每个枚举的距离q,检查是否可以通过移走不超过M块石头,使得所有相邻石头的间距都不小于q。 边界处理:起点和终点不可移动,需特别处理。
2026-06-15 22:55:45
394
原创 【洛谷 P2440】 木材加工之二分答案入门详解
本文分析了木材切割问题,要求将n根原木切割成k段长度均为l的小段木头,且l要尽可能大。通过二分答案法优化求解,将时间复杂度降至O(n log(maxL))。具体步骤包括:确定l的范围(1到maxL),二分判断中间值mid是否满足条件(能切出至少k段),逐步逼近最大解。代码实现时需注意数据类型溢出、边界条件和二分死循环等问题。文章还提供了二分答案的通用模板和同类题目推荐,如洛谷P1873砍树和P1182数列分段Section II。
2026-06-14 21:42:22
309
原创 【二分答案】附通用模板
本文系统介绍了二分答案算法,分为四个部分:核心概念、应用模板、解题步骤和注意事项。首先指出二分答案通过猜测答案并验证的方式求解,适用于具有确定范围和单调性的最优化问题。然后详细讲解求最小解和最大解的两大模板,强调mid取值差异和边界移动规则。接着提出解题四步法:分析题意、确定边界、选择模板、编写check函数,并通过分组求最小最大值的例题演示完整流程。最后总结易错点,比较二分答案与二分查找的区别,附记忆口诀帮助掌握。全文强调check函数的关键作用和模板选择的准确性,为处理最值问题提供了系统方法。
2026-06-14 18:33:02
331
原创 【洛谷 P1024 】[NOIP2001 提高组] 一元三次方程求解 - 详细分析与C++实现
本文介绍了如何利用二分法求解一元三次方程的实根问题。题目给定方程 (ax^3 + bx^2 + cx + d = 0),要求在保证有三个不同实根且根差≥1的条件下,输出精确到两位小数的三个实根。 解题思路: 数学原理:基于零点存在定理,若函数在区间端点值异号,则区间内必有根。 实现步骤: 遍历区间[-100,100]内的每个长度为1的子区间。 对每个子区间检查端点函数值是否异号,若异号则用二分法在该区间内求解。 算法选择:二分法因其稳定性和可控精度成为首选,时间复杂度为O(200×14),高效可靠。
2026-06-13 18:12:08
928
原创 【洛谷 P2249】查找(深基 13. 例 1)+ 详细分析
摘要 本文解析了洛谷 P2249 查找问题的解法,要求在单调不减序列中找到目标数字首次出现的位置。由于数据规模大(n≤1e6,m≤1e5),暴力遍历会超时,需采用二分查找优化。核心算法是左边界二分模板,通过维护左右指针找到第一个≥目标值的位置,并验证是否匹配。时间复杂度为O(n + m log n),高效解决大规模数据问题。文章详细分析了二分边界处理、IO优化及边界情况,并提供了可直接套用的AC代码。该模板适用于所有有序序列的首次位置查询场景。
2026-06-13 17:21:06
236
原创 全网最全!二分查找的两种核心模板详解
本文详细介绍了二分查找的两种经典场景及其实现方式。对于查找最后一个≤x的元素,推荐使用开区间写法或记录答案写法,关键逻辑是满足条件时左边界右移;对于查找第一个≥x的元素,同样推荐开区间或记录答案写法,满足条件时右边界左移。文章对比了不同实现方式的优缺点,强调了避免死循环的注意事项(如mid计算方式),并提供了边界初始化和数组下标选择的建议。通过清晰的代码示例和对比表格,帮助读者掌握二分查找的核心逻辑与实现细节。
2026-06-13 16:41:18
406
原创 【洛谷 P1480】A/B Problem(高精度除法 Ⅰ)详细题解
本文详细讲解了高精度除法问题(大整数除以普通整数)的解题思路。题目要求计算超大整数A除以普通整数B的商和余数,其中A的位数极大,需用字符串存储。核心思路是模拟手工竖式除法,从高位到低位逐位计算,实时更新余数,并处理商的前导零问题。文章提供了完整的C++代码实现,包含详细注释和示例演示,适用于算法竞赛中的高精度运算场景。
2026-06-08 23:10:49
352
原创 【洛谷 P1303】A*B Problem + 详细分析
摘要:本文详细解析了高精度乘法问题(洛谷P1303)。由于普通整型无法存储超大数,需通过模拟竖式乘法实现。
2026-06-08 22:43:38
475
原创 【洛谷 P2986 USACO10MAR】奶牛农场
Bessie 正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会。当然,她会选择最方便的地点来举办这次集会。每个奶牛居住在N个农场中的一个,这些农场由N−1条道路连接,并且从任意一个农场都能够到达另外一个农场。道路i连接农场Ai和Bi,长度为Li。集会可以在N个农场中的任意一个举行。另外,每个牛棚中居住着Ci只奶牛。在选择集会的地点的时候,Bessie 希望最大化方便的程度(也就是最小化不方便程度)。比如选择第X。
2025-03-06 11:34:23
1364
原创 【洛谷 P1015 NOIP 1999 普及组】 回文数
若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。例如:给定一个十进制数56,将56加65(即把56从右向左读),得到121是一个回文数。又如:对于十进制数8787781651655617267266271353135335314884在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。写一个程序,给定一个N2≤N≤10或N16)进制数M100位之内),求最少经过几步可以得到回文数。
2025-02-28 11:12:46
1134
原创 【洛谷 U162884】海贼王
众所周知,动漫《海贼王》里有许多大海贼团,他们每个人都在海上有一定的领地。今天世界政府想要评估一下当下海贼的势力值。
2025-02-27 16:43:39
1083
原创 【NOIP2006 提高组】能量项链
在 Mars 星球上,每个 Mars 人都随身佩带着一串能量项链。在项链上有N颗能量珠。能量珠是一颗有头标记与尾标记的珠子,这些标记对应着某个正整数。并且,对于相邻的两颗珠子,前一颗珠子的尾标记一定等于后一颗珠子的头标记。因为只有这样,通过吸盘(吸盘是 Mars 人吸收能量的一种器官)的作用,这两颗珠子才能聚合成一颗珠子,同时释放出可以被吸盘吸收的能量。如果前一颗能量珠的头标记为m,尾标记为r,后一颗能量珠的头标记为r,尾标记为n,则聚合后释放的能量为m×r×n。
2024-06-05 22:44:15
1092
原创 【NOIP1996 提高组】挖地雷
在一个地图上有NN≤20个地窖,每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径。当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使某人能挖到最多的地雷。
2024-06-05 22:41:38
1030
原创 【一本通 1364】 医院设置
设有一棵二叉树,如图:其中,圈中的数字表示结点中居民的人口。圈边上数字表示结点编号,现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻接点之间的距离为1。如上图中,若医院建在1处,则距离和4122×202×40136;若医院建在3处,则距离和4×213204081。
2024-05-15 23:00:33
1328
原创 【NOIP2011 普及组】瑞士轮
在双人对决的竞技性比赛,如乒乓球、羽毛球、国际象棋中,最常见的赛制是淘汰赛和循环赛。前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高。后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长。本题中介绍的瑞士轮赛制,因最早使用于1895年在瑞士举办的国际象棋比赛而得名。它可以看作是淘汰赛与循环赛的折中,既保证了比赛的稳定性,又能使赛程不至于过长。
2024-05-15 22:56:22
1017
原创 【NOI Online #2 入门组】 未了
由于触犯天神,Sisyphus 将要接受惩罚。宙斯命 Sisyphus 推一块巨石上长度为L的山坡。Sisyphus 匀速向上推的速度为每年v的长度(由于是匀速,故经过21年将能向上推2v的长度)。然而,宙斯并不希望 Sisyphus 太快到达山顶。宙斯可以施展n个魔法,若宙斯施展第i个魔法1≤i≤n,则当 Sisyphus 第一次到达位置ai时,他将会同巨石一起滚落下山底,并从头推起。(滚落的时间忽略不计,即可看作第一次到达位置ai。
2024-05-14 21:24:56
1242
原创 【DFS BFS】多少路
一个迷宫由R行C列格子组成,有的格子里有障碍物,不能走;有的格子是空地,可以走。给定一个迷宫,求从左上角走到右下角有多少种走法(数据保证一定能走到)。只能在水平方向或垂直方向走,不能斜着走。时间限制: 1000 ms 内存限制: 65536 KB。第一行是两个整数,R和C,代表迷宫的长和宽。( 1
2024-05-14 09:26:03
482
原创 【一本通 1225】金银岛-贪心算法
某天KID利用飞行器飞到了一个金银岛上,上面有许多珍贵的金属,KID虽然更喜欢各种宝石的艺术品,可是也不拒绝这样珍贵的金属。但是他只带着一个口袋,口袋至多只能装重量为w的物品。岛上金属有s个种类, 每种金属重量不同,分别为n1, n2, … , ns,同时每个种类的金属总的价值也不同,分别为v1,v2, …, vs。KID想一次带走价值尽可能多的金属,问他最多能带走价值多少的金属。注意到金属是可以被任意分割的,并且金属的价值和其重量成正比。
2024-03-02 16:45:57
1105
原创 【贪心算法】活动安排-最详细注释解析
学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使用。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。现在给出n个活动使用礼堂的起始时间begini和结束时间endi(begini
2024-01-14 17:34:23
1453
1
原创 【图遍历】最小花费-银行转账-图的最短路-超详细解析注释
在n个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问A最少需要多少钱使得转账后B收到100元。以下m行每行输入三个正整数x,y,z,表示标号为x的人和标号为y的人之间互相转账需要扣除z%的手续费 (z
2024-01-14 17:01:27
813
1
原创 【queue】士兵队列-模拟
某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数,凡报到三的出列,剩下的向小序号方向靠拢,继续从头开始进行一至二报数。,以后从头开始轮流进行一至二报数、一至三报数直到剩下的人数不超过三人为止。共有N行,分别对应输入的新兵人数,每行输出剩下的新兵最初的编号,编号之间有一个空格。本题有多个测试数据组,第一行为组数N,接着为N行新兵人数,新兵人数不超过5000。士兵队列 队列queue。
2024-01-13 19:56:40
526
1
原创 【NOIP2006 普及组 P1060】开心的金明
设第j jj件物品的价格为v [ j ] v[j]v[j],重要度为w [ j ] w[j]w[j],共选中了k件物品,编号依次为j 1 , j 2 , …, j k , j_1,j_2,…,j k,j 1,j 2,…+ v [ j k ] × w [ j k ] v[j_1] \times w[j_1]+v[j_2] \times w[j_2]+ …+v[j_k] \times w[jk]v[j 1]×w[j 1]+v[j 2]×w[j 2]+…f[i][j]:从前面i个物品中选择若干个,最多用j元,
2024-01-10 20:00:03
628
原创 【DFS】体积
给出n件物品,每件物品有一个体积Vi,求从中取若干件物品能够组成不同的体积和有多少种可能。例如,n=3,Vi=(1,3,4),那么输出6,6种不同的体积分别为1,3,4,5,7,8。一行一个数,表示有多少种可能。第一行一个正整数,表示n。
2024-01-06 16:34:54
439
原创 【DFS】数的拆分
若干行,每行一个等式(数与数之间要求非降序排列)。最后一行给出解的总个数。将一个正整数n拆分成若干个正整数的和(至少两个数,n
2024-01-06 16:06:56
804
1
原创 【CSP-J2019 P5662】纪念品
对于 100% 的数据,T ≤ 100, N ≤ 100, M ≤ 10^3,所有价格 1 ≤ Pi,j ≤ 10^4,数据保证任意时刻,小明手上的金币数不可能超过 10^4。某个纪念品的价格是指购买一个该纪念品所需的金币数量,以及卖出一个该纪念品换回的金币数量。第一行包含三个正整数 T, N, M,相邻两数之间以一个空格分开,分别代表未来天数 T,纪念品数量 N,小伟现在拥有的金币数量 M。对于 30% 的数据,T ≤ 4, N ≤ 4, M ≤ 100,所有价格 10 ≤ Pi,j ≤ 100。
2024-01-05 18:45:55
788
1
原创 【NOIP2002 P1002】过河卒
同时在棋盘上 C 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。棋盘用坐标表示,A 点 (0, 0)(0,0)、B 点 (n, m)(n,m),同样马的位置坐标是需要给出的。现在要求你计算出卒从 A 点能够到达 B 点的路径的条数,假设马的位置是固定不动的,并不是卒走一步马走一步。(i,j)有障碍 f[i][j] = f[i-1][j]+f[i][j-1]f[i][j] 从a点(0,0)走到(i,j)点的路径条数。(i,j)无障碍f[i][j] = 0。
2024-01-03 18:42:48
614
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅