模拟卷三分析

考情

单选目标分数:26 及以上,现分数 18

阅读程序目标分数:30 及其以上,现分数 27 分

总分数:45 / 70,至少可以提高 10 分到 55 / 70

零碎小知识

  • 泛红填充算法 / 种子填充算法:基于 BFS 来实现,常用于填充/染色连通分量。
    • 哈夫曼树基于贪心
  • 按位异或可以用于交换两个变量的值,也可以用来判断两个变量是否相等
// 1. swap X Y
int x = 8, y = 5;
y = x ^ y;
x = x ^ y;
y = x ^ y;
// 2. x == y
if ((x ^ y) == 0)

单选专项

计算所占空间

数组是若干个相同元素的集合,每个元素的大小是唯一确定的,通常用字节(B)来表示。

关键字 大小
int 4B
long long 8B
char 1B
double 8B

数组大小 = 元素个数 ×\times 元素大小

集合运算

学习blog:https://www.zhihu.com/tardis/zm/art/364688466?source_id=1005

阅读程序

第一题

分数要求:应该拿满分,目前被扣了 1.5

反省

没有完全吃透代码,只是大致了解了意思。

后面你应该这么做:

以后遇到这种题,要仔细阅读边界问题(如弹出删除之前判空,数组的最后一个位置),并在草稿纸上画图。

第二题

分数要求:应该拿满分,目前被扣了 1.5

计算粗心

第三题

应拿分数:

知识点补充

  • using pii = pair<int,int> 表示用 pii 表示pair<int,int>
  • 常使用的名称有:vis(访问)、ans(答案)、tot(总数)、cnt(计数器、计数)、grid(表格),dp(动态规划)、cur(目前)、to(去),now(目前)
  • const 表示不变量

反思

我没有读懂这道题的代码,以后看到很长,很复杂的代码,不要放弃,要理解大致意思,拿到简单题的分数(判断题做的很明显的或绝对是对的,选择题可以看出答案的,不涉及到程序功能的题或模拟题)。