自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 NOIP普及组系列【2015】 P2669 [NOIP 2015 普及组] 金币题解

这道看似简单的金币问题,实则蕴含着丰富的算法思维训练价值。作为NOIP普及组的经典题目,它完美展现了从暴力模拟到数学优化的思维跃迁过程。从教学角度来看,模拟法是最符合人类直觉的解决方式。它通过逐日/逐周期模拟金币发放过程,帮助初学者建立问题与计算机实现的桥梁。这种方法虽然效率不是最优,但对于培养编程思维和问题分解能力至关重要。在实际教学中,建议要求学生先掌握这种基础解法,再引导其思考优化可能。数学公式法则展现了算法竞赛的精髓——通过数学建模将问题抽象化。

2025-07-25 18:03:31 714

原创 CSP-J系列【2024】P11230 [CSP-J 2024] 接龙题解

本文介绍了一种多人接龙游戏的判定问题。给定n个玩家的词库序列和q个任务,每个任务要求进行恰好r轮接龙,最后一轮以指定元素结束。游戏规则包括:每轮由不同玩家选择长度在[2,k]的子序列,首轮以1开头,后续轮次需接续上轮末尾元素。文章提出了基于动态规划的解法,预处理各玩家词库中元素的首尾关系,通过状态转移判断任务可行性。针对不同数据规模,给出了优化策略,并分析了时间复杂度为O(n+k+q)的解决方案。该问题考察了字符串处理和状态转移的应用能力,对算法竞赛和实际编程有重要参考价值。

2025-07-23 21:26:41 636

原创 CSP-J系列【2024】P11229 [CSP-J 2024] 小木棍题解

摘要:本文介绍了2024年CSP-J竞赛中的小木棍问题,要求用n根木棍拼接数字,找出满足条件的最小正整数。题目分析两种解法:DFS剪枝法(通过排序优化和多种剪枝策略提高效率)和动态规划法(适合小规模数据)。比较了两种方法的时间复杂度、适用场景,并讨论了剪枝优化、边界处理等关键问题。该问题在资源分配、货物装载等领域有实际应用价值,掌握组合优化算法对解决工程问题很有帮助。

2025-07-23 21:21:33 740

原创 CSP-J系列【2024】P11228 [CSP-J 2024] 地图探险题解

摘要 本文描述了一个机器人丛林探险的模拟问题。给定n×m的字符矩阵表示丛林地图('.'可通行,'x'障碍物),机器人从初始位置(x0,y0)和方向d0出发,执行k次操作:每次尝试沿当前方向移动,若受阻则右转90度。要求统计机器人最终访问过的不同位置总数(含起点)。输入包含T组测试数据,每组包括地图尺寸、操作次数、初始状态和地图信息。输出每组数据中机器人访问过的位置数量。样例展示了机器人在受阻时转向和成功移动的不同情况。算法需要模拟每一步操作,维护位置和方向状态,并用标记数组记录访问轨迹。时间复杂度主要取决于

2025-07-23 21:07:36 666

原创 CSP-J系列【2024】P11227 [CSP-J 2024] 扑克牌

摘要:题目描述景区游览问题,游客需在特定时间乘坐巴士进出景区,通过单向道路系统,每条道路有开放时间限制。要求设计算法找出最早离开时间。输入为景点数n、道路数m、发车间隔k,及每条道路的起点、终点和开放时间。输出最早乘车离开时刻或-1(无解)。示例解释显示如何在时刻3进入,沿1→3→4→5路线在时刻6离开。数据范围n≤1e4,m≤2e4,k≤100。需要处理时间约束下的最短路径问题,考虑巴士班次和道路开放时间的协调。

2025-07-23 20:59:59 932

原创 CSP-J系列【2023】P9751 [CSP-J 2023] 旅游巴士题解

题目摘要:给定一个n个景点、m条单向道路的旅游地图,每条道路有开放时间ai。游客需从1号景点出发,n号景点离开,且必须在k的整数倍时刻到达和离开。每条道路耗时1单位时间且不能停留。要求计算游客最早离开景点的时刻,若不可行输出-1。输入包含n,m,k和道路信息,输出最早离开时间。样例解释:3时刻到达,1→3→4→5路线,6时刻离开。数据范围:n≤1e4,m≤2e4,k≤100。

2025-07-23 20:53:51 1098

原创 CSP-J系列【2023】P9750 [CSP-J 2023] 一元二次方程题解

本文介绍了一元二次方程求解问题及其编程实现方法。题目要求处理形如ax²+bx+c=0的方程,根据判别式Δ=b²-4ac判断是否有实数解,并按特定格式输出结果。文章详细讲解了两种解法:直接计算法通过求根公式直接求解,优化计算法则通过减少重复运算提高效率。同时分析了算法复杂度、边界情况处理和常见错误,并扩展了相关数学知识。两种方法各具特点,直接计算法直观易懂,优化计算法性能更优,适用于不同应用场景。掌握这些方法不仅能提升算法能力,还能加深对数学原理的理解。

2025-07-23 20:45:55 1177

原创 CSP-J系列【2023】P9749 [CSP-J 2023] 公路

摘要:题目要求计算从站点1到站点n的最小加油费用,给出站点间距离和油价。核心解法采用贪心算法,在当前站点寻找后续更便宜的加油站,计算所需油量(需向上取整)。优化解法使用单调栈预处理油价控制区间,将时间复杂度从O(n²)降至O(n)。两种方法都需注意处理边界条件和数据溢出问题,适用于物流运输等实际场景。示例中在站点1、2、4分别购买3、5、2升油,总费用79元为最优解。

2025-07-23 20:35:25 885

原创 CSP-J系列【2023】P9748 [CSP-J 2023] 小苹果题解

题目摘要:给定n个排成一列的苹果,每天从左侧开始每隔2个取1个(取第1,4,7...个),直到取完。要求计算:1)取完所有苹果的天数;2)第n个苹果被取走的天数。对于n=8的情况,需要5天取完,第8个苹果在第2天被取走。两种解法:模拟法(O(nlogn))直接维护剩余苹果;数学法(O(logn))利用递推关系计算。数学法通过分析位置变化规律,更高效处理大规模数据(如n=1e9)。

2025-07-23 20:01:36 504

原创 DP系列2【01背包】洛谷 P1049 [NOIP 2001 普及组] 装箱问题题解

本文介绍了如何解决装箱问题:给定容量为V的箱子和n个物品,每个物品有固定体积,要求选择若干物品装入箱子,使剩余空间最小。通过动态规划方法,定义数组dp[i]表示容量i时能装入的最大体积,使用状态转移方程dp[i] = max(dp[i], dp[i-w[j]]+w[j])进行求解。算法遍历所有物品,逆向更新dp数组,最终最小剩余空间为V-dp[V]。该问题采用01背包思想,时间复杂度O(nV),适用于小规模数据(n≤30,V≤20000)。代码实现展示了C++解法,核心是两层循环完成动态规划过程。

2025-07-23 19:40:46 974

原创 DP系列1【线性DP】洛谷P1115最大子段和题解

这篇文章介绍了求解最大子段和问题的动态规划方法。题目要求在一个整数序列中找出连续子序列的最大和。核心思路是定义dp[i]表示以第i个元素结尾的最大子段和,状态转移方程为dp[i] = max(dp[i-1]+a[i], a[i])。通过遍历数组并维护当前最大和,最终在dp数组中找到最大值即为答案。该方法时间复杂度为O(n),适用于大规模数据(n≤2×10^5)。文章提供了完整的C++实现代码,并强调这是动态规划的入门练习题,关键在于正确设计状态转移方程。

2025-07-22 19:57:34 260 1

原创 2025.3.10信奥笔记(图的基础)

在无向图中,若顶点Vi,到顶点Vj,有一条边,使用(vi,vj)或(vj,vi)表示,称 vi,vj互为邻接点。有向图中若顶点的数目为且n,边的数目e = n(n-1),及任意一个顶点指向其他的边有n-1条,无向图中若顶点的数量为n,边的数量为n(n-1)/ 2及任意一个顶点之间有唯一条的边相连。有向图中,若顶点V1,到一点Vi,有一条边,使用<v1,vi>表示,称Vi 邻接到Vi。顶点V的入读和出度之和称为该顶点的总度,简称为度,记作TD(V)所邻接的顶点V的边的数目,称为该顶点的入读,记作ID(V)

2025-03-10 20:54:53 190

原创 #E. 马的遍历

这是一道广搜的题,急的粉丝直接在目录跳到最后一节完整代。

2025-01-20 10:32:01 419

原创 八皇后问题

这题很简单的搜索,学会了这题你就算是搜索入门了。

2025-01-20 09:37:51 396

原创 P11035 【MX-X3-T2】「RiOI-4」消えた夏の夢

小 T 手中有一个数 �x,初始时为 �p。而小 ⊥ 手中有一个长为 �n 的序列 �a。对于 100%100% 的数据,1≤�≤1051≤n≤105,∣��∣,∣�∣≤109∣ai​∣,∣p∣≤109。小 T 想知道,在若干次操作(可以不进行操作,同一个位置可以选中多次)之后,小 T 手中的数 �x 最大是多少。第二行 �n 个整数 ��ai​。第一行两个整数 �,�n,p。終わらせよう戻らないように。いつまでも二人語り合おう。君へ届けと願った声が。風になって心の隙間を。——《消えた夏の夢》

2024-10-06 17:47:50 576 2

原创 CSP-J历年真题(部分)解析与题解

CSP2020T2,我历时5天AC;我的思路希望给予你帮助;不死心的我决定再次挑战,我看了样例分析和计算过程;先插入一个,在排序;不就是插入排序吗?我觉定换一种排序,什么排序能解决这样的问题呢;不超过600,可以开桶啊,那就用桶排序!!!;

2024-09-29 18:27:36 1609 4

原创 洛谷P1088 [NOIP2004 普及组] 火星人题解

如果把五根手指――拇指、食指、中指、无名指和小指分别编号为 1,2,3,41,2,3,4 和 55,当它们按正常顺序排列时,形成了 55 位数 1234512345,当你交换无名指和小指的位置时,会形成 55 位数 1235412354,当你把五个手指的顺序完全颠倒时,会形成 5432154321,在所有能够形成的 120120 个 55 位数中,1234512345 最小,它表示 11;你的任务是,把火星人用手指表示的数与科学家告诉你的数相加,并根据相加的结果改变火星人手指的排列顺序。

2024-09-28 13:21:07 1607

原创 洛谷P1827 [USACO3.4] 美国血统 题解

你的任务是在被给予奶牛家谱的“树中序遍历”和“树前序遍历”的符号后,创建奶牛家谱的“树的 后序遍历”的符号。)显然,这里的树不会有多于 2626 个的顶点。他把他的奶牛 们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而 不是用图形的方法。第一步找根,我们知道后序遍历的根在最前面,那我们该怎样求出跟在中序遍历的位置呢;前序便利是根左右,因为第一个是根所以,也就是PL是根;我们假设后序遍历便利的左端点是PL,右端点是PR;今天的题解就结束了,我们下次再见!

2024-09-28 10:58:38 880 1

原创 洛谷P1162 填涂颜色题解

由数字 00 组成的方阵中,有一任意形状的由数字 11 构成的闭合圈。如果从某个 00 出发,只向上下左右 44 个方向移动且仅经过其他 00 的情况下,无法到达方阵的边界,就认为这个 00。如果遇到1就跳过,不是1的就换成1,由于内层的0是被包裹着的,搜完了后。接下来 nn 行,由 00 和 11 组成的 n×nn×n 的方阵。每组测试数据第一行一个整数 n(1≤n≤30)n(1≤n≤30)。对于 100%100% 的数据,1≤n≤301≤n≤30。闭合圈不一定是环形的,可以是任意形状,但保证。

2024-09-27 21:58:09 701 2

原创 洛谷P1090合并果子题解

接着,将新堆与原先的第三堆合并,又得到新的堆,数目为 1212 ,耗费体力为 1212。假定每个果子重量都为 11 ,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。第一行是一个整数 n(1≤n≤10000)n(1≤n≤10000) ,表示果子的种类数。结果.........

2024-09-27 21:20:54 993 2

空空如也

空空如也

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

TA关注的人

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