技术栈
信奥赛
王老师青少年编程
2 天前
c++
·
csp
·
信奥赛
·
csp-s
·
提高组
·
iddfs
·
埃及分数
信奥赛C++提高组csp-s之搜索进阶(迭代加深IDDFS)
迭代加深搜索(Iterative Deepening DFS,简称 IDDFS)是一种特殊的深度优先搜索。它给普通的 DFS 套上了一层“深度限制”循环,搜索过程如下:
王老师青少年编程
2 天前
c++
·
记忆化搜索
·
搜索
·
信奥赛
·
csp-s
·
提高组
·
滑雪
信奥赛C++提高组csp-s之搜索进阶(记忆化搜索案例实践1)
Michael 喜欢滑雪。这并不奇怪,因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael 想知道在一个区域中最长的滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子:
froyoisle
3 天前
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 的范围。
王老师青少年编程
4 天前
c++
·
记忆化搜索
·
csp
·
信奥赛
·
csp-s
·
提高组
·
搜索进阶
信奥赛C++提高组csp-s之搜索进阶(记忆化搜索核心思想)
记忆化搜索(Memoization Search)是一种通过记录已经遍历过的状态信息,从而避免对同一状态重复遍历的搜索算法。可以把它理解为带有“备忘录”的递归——递归每次返回的时候,将结果放到备忘录里;每次进入递归的时候,先看看备忘录里有没有当前状态,如果有就直接返回,不用再重复计算。
王老师青少年编程
6 天前
c++
·
csp
·
高频考点
·
信奥赛
·
提高组
·
搜索剪枝
·
小木棍
信奥赛C++提高组csp-s之搜索进阶(搜索剪枝案例实践1)
乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过 50 50 50。现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度。
王老师青少年编程
6 天前
c++
·
dfs
·
csp
·
信奥赛
·
搜索剪枝
·
搜索优化
信奥赛C++提高组csp-s之搜索进阶(搜索剪枝核心思想 )
搜索剪枝的本质,是在搜索树的生长过程中提前判定某些分支不可能产生解(或最优解),从而将其“剪掉”不再继续搜索,以大幅减少搜索空间。
王老师青少年编程
6 天前
c++
·
信奥赛
·
csp-s
·
提高组
·
搜索剪枝
·
生日蛋糕
·
最优性剪枝
信奥赛C++提高组csp-s之搜索进阶(搜索剪枝案例实践2)
7 月 17 日是 Mr.W 的生日,ACM-THU 为此要制作一个体积为 N π N\pi Nπ 的 M M M 层生日蛋糕,每层都是一个圆柱体。
王老师青少年编程
7 天前
c++
·
csp
·
平衡树
·
信奥赛
·
csp-s
·
提高组
·
fhq treap
信奥赛C++提高组csp-s之FHQ Treap
FHQ Treap(无旋Treap)是一种基于Tree(二叉搜索树)+ Heap(堆)的数据结构。它的核心特点是不需要旋转操作,仅依靠**分裂(Split)和合并(Merge)**两个核心操作就能实现所有平衡树功能。这也是它相比Splay和有旋Treap的最大优势——代码短小、易于理解、支持可持久化。
王老师青少年编程
9 天前
c++
·
前缀和
·
差分
·
csp
·
高频考点
·
信奥赛
·
铺设道路
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维差分】:[NOIP 2018 提高组] 铺设道路
春春是一名道路工程师,负责铺设一条长度为 n n n 的道路。铺设道路的主要工作是填平下陷的地表。整段道路可以看作是 n n n 块连续的区域,一开始,第 i i i 块区域下陷的深度为 d i d_i di 。
王老师青少年编程
9 天前
c++
·
平衡树
·
treap
·
信奥赛
·
csp-s
·
提高组
信奥赛C++提高组csp-s之平衡树(Treap)
二叉查找树(Binary Search Tree, BST)的查找、插入、删除操作时间复杂度为 O(h),其中 h 为树的高度。在理想情况下,BST 的高度为 O(log n),但在最坏情况下(例如插入的节点序列本身有序),BST 会退化成单链表,性能下降到 O(n)。
王老师青少年编程
17 天前
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 个区间的区间和。
王老师青少年编程
18 天前
c++
·
前缀和
·
csp
·
高频考点
·
信奥赛
·
“非常男女”计划
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:“非常男女”计划
近来,初一年的 XXX 小朋友致力于研究班上同学的配对问题(别想太多,仅是舞伴),通过各种推理和实验,他掌握了大量的实战经验。例如,据他观察,身高相近的人似乎比较合得来。
王老师青少年编程
19 天前
c++
·
前缀和
·
csp
·
高频考点
·
信奥赛
·
宝石串
csp信奥赛C++高频考点专项训练之前缀和&差分 --【一维前缀和】:宝石串
有一种宝石串,由绿宝石和红宝石串成,仅当绿宝石和红宝石数目相同的时候,宝石串才最为稳定,不易断裂。安安想知道从给定的宝石串中,可以截取一段最长的稳定的宝石串,有多少颗宝石组成。请你帮助他。
王老师青少年编程
21 天前
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 相等?
王老师青少年编程
23 天前
c++
·
字符串
·
csp
·
高频考点
·
信奥赛
csp信奥赛C++高频考点专项训练之字符串 --【字符串综合】:遍历问题
我们都很熟悉二叉树的前序、中序、后序遍历,在数据结构中常提出这样的问题:已知一棵二叉树的前序和中序遍历,求它的后序遍历,相应的,已知一棵二叉树的后序遍历和中序遍历序列你也能求出它的前序遍历。然而给定一棵二叉树的前序和后序遍历,你却不能确定其中序遍历序列,考虑如下图中的几棵二叉树:
王老师青少年编程
24 天前
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 满足:
王老师青少年编程
24 天前
c++
·
字符串
·
csp
·
高频考点
·
信奥赛
·
字符串综合
·
fbi树
csp信奥赛C++高频考点专项训练之字符串 --【字符串综合】:[NOIP 2004 普及组] FBI 树
我们可以把由 0 和 1 组成的字符串分为三类:全 0 串称为 B 串,全 1 串称为 I 串,既含 0 又含 1 的串则称为 F 串。
王老师青少年编程
25 天前
c++
·
字符串
·
csp
·
高频考点
·
信奥赛
·
字符串回文
·
回文拼接
csp信奥赛C++高频考点专项训练之字符串 --【回文字符串】:回文拼接
一个字符串是回文串,当且仅当该字符串从前往后读和从后往前读是一样的,例如, aabaa \texttt{aabaa} aabaa 和 ccddcc \texttt{ccddcc} ccddcc 都是回文串,但 abcd \texttt{abcd} abcd 不是。
王老师青少年编程
25 天前
c++
·
字符串
·
csp
·
高频考点
·
信奥赛
·
回文字符串
·
判断字符串是否为回文
csp信奥赛C++高频考点专项训练之字符串 --【回文字符串】:判断字符串是否为回文
输入一个字符串,输出该字符串是否回文。回文是指顺读和倒读都一样的字符串。输入一行字符串,长度小于 100 100 100。
王老师青少年编程
1 个月前
c++
·
字符串
·
csp
·
高频考点
·
信奥赛
·
字符串排序
·
合并序列
csp信奥赛C++高频考点专项训练之字符串 --【字符串排序】:合并序列
有 N N N 个单词和字符串 T T T,按字典序输出以字符串 T T T 为前缀的所有单词。输入文件第一行包含一个正整数 N N N;