技术栈
信奥赛
王老师青少年编程
13 天前
c++
·
真题
·
csp
·
信奥赛
·
复赛
·
csp-x
·
摧毁
2022年CSP-X复赛真题及题解(T4:摧毁)
坐地日行八万里,巡天遥看一千河。2077 年,人类不仅仅是赛博科技得到了发展,太空技术也已经得到了极大的发展。地球的不同外轨道上已经充斥着各种功能用途的人造卫星。因为一个轨道上的卫星数量是有上限的,且卫星更新换代速度很快,如果想要发射新的卫星,需要把所有旧的卫星摧毁。
王老师青少年编程
15 天前
c++
·
真题
·
csp
·
信奥赛
·
复赛
·
独木桥
·
csp-x
2022年CSP-X复赛真题及题解(T1:独木桥)
长度为 L L L 米的独木桥上有 n n n 个人,他们每个人都想以最快的时间离开危险的独木桥。已知每个人在独木桥上的行走速度为 1 米每秒,每个人只要能走到独木桥的两个端点中的其中一个就可以离开独木桥。
王老师青少年编程
15 天前
c++
·
真题
·
csp
·
信奥赛
·
复赛
·
csp-x
·
移动棋子
2022年CSP-X复赛真题及题解(T2:移动棋子)
一维的棋盘上有无限多个格子,每个格子都有一个编号,最中间的格子编号为 0 0 0, 0 0 0 号格子向右依次编号为 1 , 2 , 3 , ⋯ 1,2,3,\cdots 1,2,3,⋯,向左依次编号为 − 1 , − 2 , − 3 , ⋯ -1,-2,-3,\cdots −1,−2,−3,⋯。
王老师青少年编程
20 天前
c++
·
记忆化搜索
·
方格取数
·
csp
·
信奥赛
·
csp-s
·
提高组
信奥赛C++提高组csp-s之搜索进阶(记忆化搜索案例实践3)
设有 n × m n \times m n×m 的方格图,每个方格中都有一个整数。现有一只小熊,想从图的左上角走到右下角,每一步只能向上、向下或向右走一格,并且不能重复经过已经走过的方格,也不能走出边界。小熊会取走所有经过的方格中的整数,求它能取到的整数之和的最大值。
王老师青少年编程
22 天前
c++
·
csp
·
信奥赛
·
csp-s
·
提高组
·
iddfs
·
埃及分数
信奥赛C++提高组csp-s之搜索进阶(迭代加深IDDFS)
迭代加深搜索(Iterative Deepening DFS,简称 IDDFS)是一种特殊的深度优先搜索。它给普通的 DFS 套上了一层“深度限制”循环,搜索过程如下:
王老师青少年编程
22 天前
c++
·
记忆化搜索
·
搜索
·
信奥赛
·
csp-s
·
提高组
·
滑雪
信奥赛C++提高组csp-s之搜索进阶(记忆化搜索案例实践1)
Michael 喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael 想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:
froyoisle
23 天前
c++
·
算法
·
csp
·
算法竞赛
·
信奥赛
CSP 真题解析:[CSP-J 2025-T3] 异或和
摘要:本题是 CSP-J 2025 的一道贪心算法题,要求在长度为 n 的序列中选出尽可能多的不相交区间,使得每个区间的异或和等于给定值 k。核心解法是利用前缀异或和的性质(b[r] ⊕ b[l-1] = k ⇔b[l-1] = b[r] ⊕ k),结合右端点优先的贪心策略,并使用哈希表记录每个前缀异或值最后出现的位置,实现 O(n)时间复杂度的求解。关键易错点包括:p[0] = 0 的边界初始化、更新语句的顺序(先判断后登记)、以及数组大小需覆盖 0~2^20-1 的范围。
王老师青少年编程
24 天前
c++
·
记忆化搜索
·
csp
·
信奥赛
·
csp-s
·
提高组
·
搜索进阶
信奥赛C++提高组csp-s之搜索进阶(记忆化搜索核心思想)
记忆化搜索(Memoization Search)是一种通过记录已经遍历过的状态信息,从而避免对同一状态重复遍历的搜索算法。可以把它理解为带有“备忘录”的递归——递归每次返回的时候,将结果放到备忘录里;每次进入递归的时候,先看看备忘录里有没有当前状态,如果有就直接返回,不用再重复计算。
王老师青少年编程
1 个月前
c++
·
csp
·
高频考点
·
信奥赛
·
提高组
·
搜索剪枝
·
小木棍
信奥赛C++提高组csp-s之搜索进阶(搜索剪枝案例实践1)
乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过 50 50 50。现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度。
王老师青少年编程
1 个月前
c++
·
dfs
·
csp
·
信奥赛
·
搜索剪枝
·
搜索优化
信奥赛C++提高组csp-s之搜索进阶(搜索剪枝核心思想 )
搜索剪枝的本质,是在搜索树的生长过程中提前判定某些分支不可能产生解(或最优解),从而将其“剪掉”不再继续搜索,以大幅减少搜索空间。
王老师青少年编程
1 个月前
c++
·
信奥赛
·
csp-s
·
提高组
·
搜索剪枝
·
生日蛋糕
·
最优性剪枝
信奥赛C++提高组csp-s之搜索进阶(搜索剪枝案例实践2)
7 月 17 日是 Mr.W 的生日,ACM-THU 为此要制作一个体积为 N π N\pi Nπ 的 M M M 层生日蛋糕,每层都是一个圆柱体。
王老师青少年编程
1 个月前
c++
·
csp
·
平衡树
·
信奥赛
·
csp-s
·
提高组
·
fhq treap
信奥赛C++提高组csp-s之FHQ Treap
FHQ Treap(无旋Treap)是一种基于Tree(二叉搜索树)+ Heap(堆)的数据结构。它的核心特点是不需要旋转操作,仅依靠**分裂(Split)和合并(Merge)**两个核心操作就能实现所有平衡树功能。这也是它相比Splay和有旋Treap的最大优势——代码短小、易于理解、支持可持久化。
王老师青少年编程
1 个月前
c++
·
前缀和
·
差分
·
csp
·
高频考点
·
信奥赛
·
铺设道路
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维差分】:[NOIP 2018 提高组] 铺设道路
春春是一名道路工程师,负责铺设一条长度为 n n n 的道路。铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 n n n 块连续的区域,一开始,第 i i i 块区域下陷的深度为 d i d_i di 。
王老师青少年编程
1 个月前
c++
·
平衡树
·
treap
·
信奥赛
·
csp-s
·
提高组
信奥赛C++提高组csp-s之平衡树(Treap)
二叉查找树(Binary Search Tree, BST)的查找、插入、删除操作时间复杂度为 O(h),其中 h 为树的高度。在理想情况下,BST 的高度为 O(log n),但在最坏情况下(例如插入的节点序列本身有序),BST 会退化成单链表,性能下降到 O(n)。
王老师青少年编程
1 个月前
c++
·
前缀和
·
csp
·
高频考点
·
信奥赛
·
求和区间和
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:求区间和
给定由 n n n 个正整数组成的序列 a 1 , a 2 , ⋯ , a n a_1, a_2, \cdots, a_n a1,a2,⋯,an 和 m m m 个区间 [ l i , r i ] [l_i,r_i] [li,ri],分别求这 m m m 个区间的区间和。
王老师青少年编程
1 个月前
c++
·
前缀和
·
csp
·
高频考点
·
信奥赛
·
“非常男女”计划
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:“非常男女”计划
近来,初一年的 XXX 小朋友致力于研究班上同学的配对问题(别想太多,仅是舞伴),通过各种推理和实验,他掌握了大量的实战经验。例如,据他观察,身高相近的人似乎比较合得来。
王老师青少年编程
1 个月前
c++
·
前缀和
·
csp
·
高频考点
·
信奥赛
·
宝石串
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:宝石串
有一种宝石串,由绿宝石和红宝石串成,仅当绿宝石和红宝石数目相同的时候,宝石串才最为稳定,不易断裂。安安想知道从给定的宝石串中,可以截取一段最长的稳定的宝石串,有多少颗宝石组成。请你帮助他。
王老师青少年编程
1 个月前
c++
·
字符串
·
csp
·
高频考点
·
子串
·
信奥赛
csp信奥赛C++高频考点专项训练之字符串 --【字符串综合】:[NOIP 2015 提高组] 子串
有两个仅包含小写英文字母的字符串 A A A 和 B B B。现在要从字符串 A A A 中取出 k k k 个互不重叠的非空子串,然后把这 k k k 个子串按照其在字符串 A A A 中出现的顺序依次连接起来得到一个新的字符串。请问有多少种方案可以使得这个新串与字符串 B B B 相等?
王老师青少年编程
1 个月前
c++
·
字符串
·
csp
·
高频考点
·
信奥赛
csp信奥赛C++高频考点专项训练之字符串 --【字符串综合】:遍历问题
我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序遍历,你却不能确定其中序遍历序列,考虑如下图中的几棵二叉树:
王老师青少年编程
1 个月前
c++
·
字符串
·
csp
·
高频考点
·
信奥赛
·
字符串排序
·
字符排序
csp信奥赛C++高频考点专项训练之字符串 --【字符串排序】:字符排序
小杨有 n n n 个仅包含小写字母的字符串 s 1 , s 2 , … , s n s_1,s_2,\ldots,s_n s1,s2,…,sn,小杨想将这些字符串按一定顺序排列后拼接到一起构成字符串 t t t。小杨希望最后构成的字符串 t t t 满足: