自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(60)
  • 问答 (1)
  • 收藏
  • 关注

原创 P14364 [CSP-S 2025] 员工招聘 / employ

表示题易,所有人都能做出,面试者被录用。,如果在他面试之前被拒绝或放弃的人数不少于。表示题难,无人能做出,面试者被拒绝;:当天面试者可能被录用或放弃。天,每天面试一个人,顺序由排列。个人应聘,公司希望录用至少。算法,考虑动态规划。:则当天面试者会被拒绝,因此。,空间优化后使用二维数组实现。使得最终录用人数至少为。个人被拒绝或放弃,且前。然后根据当天面试者的。最终答案需要统计所有。

2025-11-03 00:58:30 486

原创 P14363 [CSP-S 2025] 谐音替换 / replace

使用倍增数组快速在 Fail 树上跳转,预处理每个节点的深度和祖先信息。:在 Trie 树上构建 Fail 指针和 Fail 树,用于快速跳转。两种方法不同当且仅当子串位置不同或使用的规则不同。:构建特殊的 AC 自动机,其中 Trie 树的边以字符对。个询问,每个询问给出两个字符串。插入 Trie 树,边标识为。分别是规则和查询的总长度。

2025-11-03 00:56:49 787

原创 P14362 [CSP-S 2025] 道路修复 / road

种状态),对每种状态构建新图并求最小生成树。条双向道路,所有道路都被地震破坏。直接求原图的最小生成树即可,无需考虑乡镇。,我们可以枚举所有乡镇的选择方案(共。个乡镇可以选择进行城市化改造。,可以选择任意多个乡镇(包括。:以最小费用让原有的。

2025-11-03 00:52:25 775

原创 P14361 [CSP-S 2025] 社团招新 / club

个部门工作,每个人对每个部门都有一个"喜欢程度"评分,而且每个人对这三个部门的评分都不一样(除了特殊性质)。设:初始“满意度值”为选择最高评分部门的分值,而“不满意值”为转去其他部门后减少的分值。但是有个规定:每个部门的人数不能超过总人数的一半(在满足人数限制的前提下,让所有人选择部门后,这其实也是贪心反悔的过程。

2025-11-03 00:50:02 555

原创 P14360 [CSP-J 2025] 多边形 / polygon

正难则反 + 动态规划状态定义:流程:

2025-11-03 00:48:07 943

原创 P14359 [CSP-J 2025] 异或和 / xor

注意不能同时选 [3,3] 和 [1,4],因为下标 3 重叠。选择区间:[1,1] (异或和 =2) 和 [2,4] (只能选择1个区间,如 [3,3] (异或和 =0)序列:[2, 1, 0, 3], k = 2。序列:[2, 1, 0, 3], k=0。最多可以选择 2 个不相交区间。

2025-11-03 00:46:04 798

原创 P14358 [CSP-J 2025] 座位 / seat

成绩排序:100 > 99 > 98 > 97。

2025-11-03 00:43:19 493

原创 P14357 [CSP-J 2025] 拼数 / number

从字符串中选取若干数字字符(每个字符只能使用一次),按任意顺序拼接成一个正整数,求能拼成的最大正整数。:将数字字符按从大到小排序后直接拼接。),仅包含小写英文字母和数字,且。

2025-11-03 00:40:37 339

原创 Part05 数学与其他

本文总结了数论与组合数学中的核心概念和算法。在数论部分,介绍了同余运算、欧拉函数与定理、费马小定理、威尔逊定理、裴蜀定理、模逆元求法、扩展欧几里得算法和中国剩余定理,并提供了相应的C++实现代码。组合数学部分涵盖了多重集合、等价类、多重集排列组合、错排列和圆排列的概念及计数公式。这些内容构成了离散数学的基础知识体系,为算法设计和数学建模提供了重要工具。

2025-09-18 23:30:40 693

原创 Part04 算法

本文档总结了CSP-S初赛中常见的数据结构与算法知识,重点包括:时间复杂度分析(O(1)到O(2^n))、空间复杂度优化技巧;算法策略如离散化和分治算法;排序算法(归并、快速、堆、桶、基数排序的实现与特点);字符串算法如KMP匹配。每种算法均标注复杂度特征和适用场景,为竞赛准备提供系统性的知识框架。

2025-09-18 23:28:23 894

原创 Part03 数据结构

本文介绍了CSP-S初赛中常见的高级数据结构及其实现,包括: 线性结构:双端栈、双端队列、单调队列、优先队列和ST表,重点分析了它们的特点、时间复杂度及典型应用场景。 集合与森林:并查集(带路径压缩和按秩合并)和树的孩子兄弟表示法,展示了多叉树转化为二叉树存储的方法。 特殊树结构:包括二叉堆、树状数组、线段树和字典树,详细说明了它们的构建、查询和更新操作,特别强调了线段树的递归实现和字典树的前缀匹配特性。 每种数据结构都配有核心C++代码实现,涉及数组模拟、动态规划和树形结构等编程技巧,适合算法竞赛选手快速

2025-09-18 23:24:26 968

原创 Part01、02 基础知识与编程环境、C++ 程序设计

本文档总结了CSP-S初赛所需的Linux系统操作和C++编程核心知识。主要内容包括:1) Linux常用命令(文件操作、编译运行、GDB调试);2) C++类与对象(构造/析构函数、运算符重载、继承多态);3) STL模板库(容器、迭代器、常用数据结构如vector/set/map及其操作);4) 算法模板库常用函数。这些知识点覆盖了竞赛所需的基础编程环境和C++高级特性,适合作为初赛备考的快速参考手册。

2025-09-18 23:23:19 563

原创 CSP-S 提高组初赛复习大纲

CSP-S提高组初赛复习大纲包含五个核心模块:基础知识与编程环境、C++程序设计2、数据结构、算法以及数学与其他内容。该大纲于2025年9月更新,为参赛者提供全面的备考指导,涵盖从编程基础到高级算法的关键知识点,帮助考生系统性地准备初赛。各模块内容相互衔接,形成完整的计算机科学知识体系框架。

2025-09-18 23:21:47 427

原创 Part06 其他

GESP(Grade Examination of Software Programming,软件编程能力等级认证)CSP-J/S(计算机软件能力认证)NOIP(全国青少年信息学奥林匹克联赛)省队选拔NOI(全国青少年信息学奥林匹克竞赛)计算公式:图片大小=水平像素×垂直像素×色彩位深8×1024×1024 MB\text{图片大小} = \frac{\text{水平像素} \times \text{垂直像素} \times \text{色彩位深}}{8 \times 1024 \times 1024}

2025-09-17 15:27:03 656

原创 Part04 算法

本文总结了CSP-J初赛中常见的算法知识点,主要包括五大类内容:1. 算法概念与描述,包括算法特性、评价标准和流程图符号;2. 入门算法如枚举法和模拟法;3. 基础算法如贪心、递推、递归、二分和倍增;4. 高精度数值处理算法;5. 常见排序算法及其复杂度分析。每种算法都配有典型示例代码和适用场景说明,为初学者提供了系统性的算法知识框架,重点突出了贪心算法、二分查找和排序算法等高频考点。

2025-09-17 14:08:29 1041

原创 Part02 C++ 程序设计

CSP-J初赛C++知识点总结:涵盖程序基本概念(标识符、关键字、变量/常量)、基本数据类型(整型、浮点型、字符型等)、程序语句(输入输出、条件判断、循环)、各类运算符(算术、关系、逻辑、位运算)及优先级、数学库函数和结构化程序设计三大结构(顺序、分支、循环)。重点掌握变量定义、条件语句、循环结构及常用运算符的使用规则,为初赛打下坚实基础。

2025-09-17 02:40:35 665

原创 Part05 数学

1.3 模运算与同余模运算:a mod ma \bmod mamodm 表示 aaa 除以 mmm 的余数,满足 0≤a mod m<m0 \leq a \bmod m < m0≤amodm<m同余:如果 a mod m=b mod ma \bmod m = b \bmod mamodm=bmodm,则称 aaa 与 bbb 模 mmm 同余,记作 a≡b(modm)a ≡ b \pmod{m}a≡b(modm)模运算性质:(a+b) mod m=(a mod m+b mod m) mod m(

2025-09-16 19:46:32 734

原创 Part03 数据结构

后进先出 (LIFO)表:Last In First Out栈顶:栈的最顶端元素栈底:栈的最底端元素先进先出 (FIFO)表:First In First Out队首:队列的第一个元素队尾:队列的最后一个元素。

2025-09-16 15:27:21 1087

原创 CSP-J 入门组复习(最新 NOI 大纲)

CSP-J 入门组复习大纲。

2025-09-14 10:30:48 288

原创 Part01 基础知识与编程环境

存储程序概念,程序和数据以二进制形式存储在内存中。

2025-09-14 10:29:26 961

原创 Windows 系统上配置 vscode C++ 代码格式化(OI 竞赛)

本文介绍了在Windows系统上配置VS Code实现C++代码自动格式化。主要内容包括:1)安装VS Code的C/C++扩展;2)通过Chocolatey或手动方式安装clang-format工具;3)配置VS Code设置和.clang-format文件以自定义格式化规则(如4空格缩进、大括号样式)。最后提供了疑难解答建议,如检查clang-format路径和查看输出日志。该配置可实现保存时自动格式化代码,并保持一致的代码风格。

2025-08-27 09:01:58 915

原创 P11951 [科大国创杯初中组 2023] 数数

求有多少种选三根木棍的方案,使得这三根木棍能组成一个三角形。组成三角形的条件是:较短的两根木棍长度和大于最长的那根木棍长度。快速定位首个 $ \ge a_i+a_j$ 的位置。虽然能通过本题(因为数据太水),实际上极限能超过。形成三角形条件:三角形三条边对应所在的位置。提示可以通过三角形构成条件的式子入手优化!都满足三角形的条件,而贡献的位置。位置,利用二分快速定位。位置,则贡献的位置就是。时间复杂度:枚举两条边。) 且定位是可以通过。思考如何优化这个算法?

2025-06-24 16:11:36 652

原创 P1220 关路灯

到达路灯处可立即关闭该灯(不耗时)。移动过程中,所有未关闭的路灯每秒消耗等于其功率的电力。求关闭所有路灯时,最小总电力消耗(仅计算移动过程中消耗的电力)。盏路灯处,且该路灯处于开启状态,其余路灯均关闭。每次可以向左或向右移动一单位距离,耗时。盏路灯,每盏路灯的位置为。一条笔直的道路上装有。内所有路灯后,停留在。)时的最小电力消耗。

2025-06-21 23:21:34 883

原创 P6772 [NOI2020] 美食家

本题通过。

2025-03-14 21:56:07 1016

原创 P4181 [USACO18JAN] Rental Service S

​ 一头牛的情况,是卖出[牛奶]还是[租赁]看哪个赚得更多。但对于某一头牛来说,假如牛的产奶量很高,虽然目前卖的钱很多,但如果贪心的卖掉了它,导致后期没有牛租赁出去(邻居个数是固定的。​ 现在找出一种方案(售卖牛奶、租赁奶牛),如何安排使得赚的钱数量最多,求出这个钱数。对于牛的产奶量排序(优先处理产奶量少的牛),然后对比。个),后面的牛产奶量也没它多,那岂不是亏惨了?家商店愿意以一定的价格购买一定的牛奶,也有。头牛,每头牛每天可以产一定的奶量,有。​ 考虑简单的情况,一头牛。美分的价格租赁一头奶牛。

2025-01-27 14:26:23 906

原创 P3131 [USACO16JAN] Subsequences Summing to Sevens S

是枚举序列的符合要求的起点和终点,但如果只有一个元素的时候,答案就不正确了被 hack,正确的做法是将。的操作,一是加速计算区间和,二是符合题目的区间和要求。的倍数来查找出符合的区间长度作更新,具体代码可以看下面。的倍数,找出这一段的长度是为多少,如果不存在输出。时,满足上述规律,证明起来比较简单,这里不再赘述。,再从序列的起点开始扫找第一个等于余数。开始,因为我们发现如果和整除七的一段是。,再从序列的末尾开始扫第一个等于余数。,枚举区间的起点和终点。的序列,故不需要加一。,而上面也说过,和为。

2025-01-27 12:59:31 970

原创 P6120 [USACO17JAN] Hoof, Paper, Scissor S

​ 题意理解了,我感觉就是很简单,可以用双指针做,也可以用前缀和分开两段来做。这里讲述前缀和分两段的分别统计贡献的方式来做。另外一人,只允许修改一次机会的情况下,求最多可以赢的局面数量。​ 根据题意可知,手势一旦确定为。​ 石头、剪刀、布游戏,先给出。,那么贡献(胜利的局数)就是。数组可以用前缀和来完成。,那么只允许在后面第。

2025-01-27 12:57:32 818

原创 Problem - Contest

⌊3x​⌋Oq3x​。

2025-01-05 10:55:52 745

原创 CPH (OI - 竞赛插件配置 - Windows)

前提你的 VSCode 可以在本地正常运行 C++ 程序,如果未配置好请点击进行配置。

2024-12-18 18:18:35 4397

原创 P5665 [CSP-S2019] 划分

P5665 [CSP-S2019] 划分难度:省选/NOI-。考点:单调队列、贪心、前缀和。题意:没有题目大意,本题题目描述较长,认真阅读每一个信息。​ 这个题的样例有 nnn 组数据,数据从 1∼n1 \sim n1∼n 编号,iii 号数据的规模为 aia_iai​。​ 小明对该题设计出了一个暴力程序,对于一组规模为 uuu 的数据,该程序的运行时间为 u2u^2u2。然而这个程序运行完一组规模为 uuu 的数据之后,它将在任何一组规模小于 uuu 的数据上运行错误。样例中的 aia_i

2024-11-07 23:27:21 1041

原创 P1315 [NOIP2011 提高组] 观光公交

那么每次操作都会形成新的子集合(有可能会破开),从新的子集合中再挑选一段来操作,也会如上分析一样分成两个部分,当然也会选择「左端点」开始操作,这么显然的性质为什么又要重新提及呢?因为要引出一个结论,如果每次都选择符合区间的「左端点」来操作,直接每次选择「收益最高的点」的来操作就可以了,经过刚刚的分析就可以得到全局最优解。​ 每一段行驶的长度是固定的,人「到达」和「离开」景点的时间也是固定的,每个乘客的等待时间 = 公交车到达景点。,形如下图,会有若干个「加速段」,加速段都满足什么性质呢?

2024-11-06 21:07:10 989

原创 P2672 [NOIP2015 普及组] 推销员

对应的最大话费都是线性的,再加上排序,总时间复杂度是。家住户推销产品的最大话费只有两种情况:推销给。大的位置,其他选择的位置也不会是最优解。问如何在不走多余的路前提下,他。个住户的情况下,沟通带来的疲劳值之和。较远的住户都有可能,因为任意一种只要。​ 而关联到疲劳值消耗最大,应该要从。中可能会出现两种选择的情况,选择的。个住户的情况下消耗最大,其中距离。,以及所选择住户中最远的住户距离。​ 那么服务的住户肯定是选择的前。个住户,小明每走一米消耗。名住户,分别代表所选择的。都是固定的,那么应该要让。

2024-11-05 23:20:01 975

原创 P9220 「TAOI-1」椎名真昼

​ 根据题目中对两点能互相到达的定义,我们很容易知道 – 若对某个 SCC 中的点进行一次操作,那么同处于这个 SCC 的其他点的颜色也都会翻转(但不止这些点的颜色被翻转)。:此时不难发现,如果某个 SCC 中存在异色点,那么无论怎么翻转,它们都不会变为统一颜色,于是这种情况可以直接判成平局,否则我们就把这个强连通分量染成内部点的颜色。因为若是超过两步,认为自己会输的那一方将会想尽办法不让你赢,具体表现就是重复另一方先前的操作,让图变为另一方操作前的状态,最终陷入死循环。只需关注一步定胜负和两步定胜负。

2024-11-04 00:17:34 753

原创 P11233 [CSP-S 2024] 染色

最开始就是如上的思路去解题的,但想了一下第二个维度有必要开么?否则在这之间找到相同的数并染色为同色收益也会更大。会选择最优的策略,那么(此时可以选择不和。的染色为相同时的最大分值之和,复杂度是。,需要最大化最终得分,请求出最终得分的。确定是前面最靠近相同的数染为相同色,上一次出现的位置,初始化令所有的。,暴力枚举每个数字两种染色的情况。前面存在相同的数,假设以染色为。相同色的数的位置(可预处理出来,左侧最靠近且相同的数字位置下标。,前面确定也存在一个染色染色为。进行染色,只有两种颜色。

2024-11-02 00:53:40 1876

原创 P11232 [CSP-S 2024] 超速检测

(符合要求):拍摄到超速测速仪,也好求**(二分)**求「前缀 / 后缀」。(如上图所示,答案就是一段一段连续的区间,代表某辆车被检测到超速的测速仪区间)),我们可以用(贪心)贴心的准备了加速度相关的公式(虽然只有一个有用);,最直接的办法就是想办法出掉精度丢失上带来的误差,​ 暴力枚举,每个测速仪开和关的状态,共。:保留若干个点,便得每个区间至少有一个点。题意较长,没有题目大意,否则你也大意。在主干道上「首个」测速仪的位置,,(有可能驶入主干道就超速了)。(区间的右端点排序),如下图。

2024-11-01 13:46:50 1759

原创 P11231 [CSP-S 2024] 决斗

代码分块展示,会让 读者/学生 思路更加清晰。

2024-10-31 12:55:26 996

原创 自用 - J算法 - 模板(持续更新!)

ps:陆续更新!

2024-08-27 19:10:27 299

原创 常用代码模板1 - 基础算法

CodeWin;

2024-08-27 19:09:04 1029

原创 结营考试- 算法进阶营地 - DAY11

可是,地图上每个城市的粮食数不是它本身的粮食数,而是它与它相邻的所有的城市的粮食数之和。拓扑序,如果不是,在转移当前点时可能某个前驱节点还没转移到,如果从那个节点转移到这个节点刚好是最优解(或者最优解的一部分),答案就会出错。因为每个城市在小 A 地图上的粮食数都是它与它相邻的所有的城市的粮食数之和,所以我们可以通过它得到它所在的。位为 1,且与已得出的更高位部分的答案不矛盾,则可以贪心的开启新的一段。矩阵的中心的城市并将其在地图上显示的粮食数相加即可得到实际粮食数的总和。,最长不下降子序列的最大长度。

2024-08-19 00:24:19 1705 1

原创 2024 CSP暑期集训营地 - 思维题&异或 -晚测

{m-2 个 x}$ = $ \underbrace{ x⊕⋯⊕x }_{m-2 个 x}${m 个 x}$ = 0 ⊕ $ \underbrace{ x⊕⋯⊕x },然后从这个反转价值最小的点反转,再一次性走到。故可以得到任意正整数,只有 0 无法被得到。,所以我们要找到所有条件下最后面的那个点。​ 因为每一次的条件都是从后面的一个点。均为偶数,其他都必须进行一次操作。你可以对这个序列进行若干次操作。个相同正整数异或得到的结果都是。的每个二进制位都相同,所以。因而能得到的整数只有 0。

2024-08-15 22:14:43 879

空空如也

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

TA关注的人

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