摘要:
1.原理 将不重复的元素移动到前面来,并且仅仅是相邻元素之间去重 2.实现 iterator _unique(iterator first, iterator last) { if(first == last) return last; // result 即保存结果的指针 // result 实际 阅读全文
摘要:
1. 题目链接 天梯赛真题 -- 是否是完全二叉搜索树 下面的两种写法都是使用动态内存分配来建树的,当数据规模比较小时(一般在 $20$ 左右),是可以使用数组建树的。 2. 根据节点编号判断(better) 借鉴自这里 规定根节点的编号为 $1$,左孩子节点编号为 $left$,右孩子节点编号为 阅读全文
摘要:
0x01 特殊:base=-2 LeetCode 0x02 前置知识:c++ %规则 我们需要知道,在 $C$++ 中,余数的符号取决于被除数,也即,a%b=c 中 $c$ 的符号取决于 $a$ 的符号,即,$a$ 是什么符号,$c$ 就是什么符号,与 $b$ 的符号无关。 int a[4] = { 阅读全文
摘要:
约数之和 plus 0x01 背景题目 0. 定理 算术基本定理(正整数唯一分解定律): 不考虑排列顺序的情况下,每个正整数都能够以唯一的方式表示成它的质因数的乘积。 $x={p_1}^{k_1} * {p_2}^{k_2} *{p_3}^{k_3}.....{p_n}^{k_n}$ 人话:对于每个 阅读全文
摘要:
0x01 最大连续子段和 1. 题目描述 给定我们一个数组,让我们求最大连续“非空”子段和。 2 贪心 + 递推 思路: 如果我们选取了 k 个数,并且他们的和小于 0 ,那么这 k 个数肯定全都不包含在最大连续子段中。因为它们肯定会使得和更小。 因此,我们可以使用递推的形式,贪心的选择每一个数,如 阅读全文
摘要:
1. 题目描述 2022年天梯赛正赛 $DIV2$ 2. 思路 首先认真读题,题目说的是每次送完外卖之后不必返回起点。 另外,需要送外卖的点是逐个添加,每添加一次都要算一次最短路。 我们假设一次性把所有点都添加了,此时如何求最短路呢? 如果说我们可以一条路走到黑而无需回头走的话,那么此时最短路就是最 阅读全文
摘要:
0x00 竞赛 2023年中国高校计算机大赛-团队程序设计天梯赛(GPLT)上海理工大学校内选拔赛 0x01 $dp$ 感觉很典型的 $dp$,但是我没做出来 题目大致就是说,我们有四个篮子($A,B,C,D$),每次给我们四个数($a,b,c,d$),我们可以选择一个数放到对应的篮子里。 篮子的大 阅读全文
摘要:
1. 题目描述 给定我们一些有向边和无向边,判断在将所有无向边确定方向后,能否生成一个有向无环图 2. 思路 思路其实真的非常简单。 我根据题目给定的有向边做一次 $topsort$,如果失败,说明无论剩下的无向边在怎么确定方向,都不可能无环。 如果成功,那么我们便成功确定了拓扑序。那么对于剩下的没 阅读全文
摘要:
0. ref 参考自 1. 题目描述 预定会议问题:给定我们一堆区间,区间不能重叠($[1,2]$ 和 $[2,3]$ 的 $2$ 不算重叠),求最多能保留多少个区间? 做法:贪心,按**【右端点】**排序。 为什么要按照右端点排序?反证,如果按照左端点排序,看下面的例子: |_________| 阅读全文
摘要:
1. 题目描述 354. 俄罗斯套娃信封问题 2. 思路 非常明显的上升子序列问题。但是我在做的时候遇到了一个之前做 $LCS$ 从来没考虑过的点。 之前都是直接排序,而无论是左端点优先还是右端点优先,假设左端点优先吧并且一般都是升序,我们一般是让右端点也升序的。 也就是说,左右端点都是升序的。做了 阅读全文