08 2023 档案
摘要:如何快速求出一个序列的区间和?可以使用前缀和。如何快速求出一个序列的最值?可以使用 ST 表。这两种数据结构在建立的时候颇费功夫,但使用的时候效率很高。如果再增加一个需求:需要时不时修改序列的值,那么这两种数据结构就无法高效完成了。线段树可以用来解决这类问题。 线段树是一种特殊的二叉树,它可以将一个
阅读全文
摘要:## T1 在 8 位二进制补码中,10101011 表示的数是十进制下的 - A. 43 - B. -85 - C. -43 - D. -84 答案 **B** 反码 +1 -> 补码 10101011 是补码,第一位是 0 则表示正数,1 表示负数 10101011-1=10101010,得出对
阅读全文
摘要:在生活中,经常需要对一些东西排序。比如,考试后按照成绩高低排序;打扑克时要按点数或花色排序手牌。很多问题可以利用排序将无序的杂乱无章的东西整理清楚,便于查询统计和利用。 计数排序 例题:P1271 [深基9.例1] 选举学生会 学校正在选举学生会成员,有 名候
阅读全文
摘要:# P3156 [深基15.例1] 询问学号 ```cpp #include const int MAXN = 2000005; int a[MAXN]; int main() { int n, m; scanf("%d%d", &n, &m); for (int i = 0; i #include
阅读全文
摘要:递归 递归:直接或间接(A:这件事找 B;B:这件事找 A)地用到自己。 如何定义正整数?正整数是 这些数。这个定义不是那么的“严密”,换一种方式: 是正整数 如果 是正整数, 也是正整数 这种定义就是递归式的:在“正整数”还没
阅读全文
摘要:“猜数字游戏”:在心里想一个不超过 的正整数,每猜一个数回答“大一些”、“小一些”或者“正好猜中”,则可以保证在 次之内猜到它。 这里的猜法就是“二分”。首先猜 ,如果运气很好那就直接猜中,否则不管回答是“太大”还是“太小”,都能把可行范围缩小一半:如果
阅读全文
摘要:搜索算法是一种“优雅”的暴力算法,它的核心思想是枚举,按照一定的顺序,不重不漏地枚举每一种可能的答案,最终找到一个问题需要的解。搜索算法是一种比较通用的算法,几乎可以实现各类问题(但是不保证高效)。 前置知识:递归、栈、队列 主要有两种搜索方法: 深度优先搜索(DFS) 宽度优先搜索(BFS) 两者
阅读全文