【全程NOIP计划】初赛模拟

【全程NOIP计划】初赛模拟

单项选择

1.补码等于源码加上符号位然后除符号位按位取反加一,看出来选择A

2.32位指的是对于每一个分辨率的小格子的大小为32bit,然后每个bit是8个字节,直接乘起来就好了,然后25%的压缩率指的是原来的大小0.25

3.链接器的功能是“把机器指令组合成完整的可执行程序”

4.首先一个堆中的元素要变小边的大小次,然后查询最小值是对于每个点更新的时候才进行查询,所以时间复杂度是\(O(m+nlogn)\)

5.实际上深度优先遍历,找两个点是否存在边的时间复杂度是n,然后一共有n个点,所以时间复杂度为\(O(n^2)\)

6.快速排序和归并排序实际上都用到了分治的算法,只不过归并排序更加突出,而快速排序实际上用的是递归,也是分治;求二叉树的前序遍历,因为是根左右,根左右,所以我们直接把第一个节点当做根,然后对于接下来的区间直接处理两个子树就好了,也是分治,所以答案是D

7.前缀表达式涉及到一个表达式树的运用,也就是说,这就是一个树的前序遍历,我们把这个树还原出来,然后对于这个树进行中序遍历就是最终的答案了,注意运算的优先级

8.容斥原理?似乎,似乎

9.一个逻辑的运用,实际上那个横杠就是非,然后开口向下的是与,开口向上的是或,可以类比一下集合,然后就直接运算就出来了,就直接是C

10.考察主定理的运用,直接选B

11.既然是随机的,那我们就按照左半边和右半边概率相同来说,所以我们就可以认为是在中间找点,也就是每次取中点就可以了

12.冒泡排序时间复杂度\(O(n^2)\)最差,最好可以直接\(O(n)\),这种情况是输入是一个有序的序列;然后插入排序时间复杂度也不太稳定;然后众所周知,快速排序也不稳定,所以选A

13.六个里面选四个,\(C_6^4\)

14.基本概念题,冯诺依曼提出了存储程序原理

15.最后一个打表为啥不允许啊?选D,当然注意一下ccf超过100kb的源文件是不会编译的,当你好不容易打好了一个表,然后你超过100kb就寄了

阅读程序

1.这道题目的坑人的地方主要是关于小于等于的范围的判断,这的确挺坑的

2.实际上就是一个 \(Dijkstra\)算法

3.看代码,实际上还是最短路,为啥那么多最短路啊QAQ

完善程序

1.不就是二分加贪心吗,这个比较简单来着

2.首先两个 x/2 可以换成 0+x,所以每个能到达的分数都可以用不超过一个x/2 凑出
首先特判掉不可能有 x/2 的情况(①)
称忽略 x+1 的 +1 得到的分数为基本分,忽略的所有 +1 分之和称为额外分
那么枚举所有可能的基本分,由第一句话可以视为若干个 x 加至多一个x/2
容易发现此时额外分在一个区间内,设为 [lower,upper]
为方便,枚举击中个数和是否有 x/2,然后特判掉全部不击中,所以②处填 1
lower 是额外分的最小值,因 x或x/2 至多 n-m 个故③填 i-(n-m)
base 就是基本分,根据题目描述显然④填 (2i-j)M/(2*n)
因 j 倒序枚举保证了 base 单调不降,可以看出 lst 就是上一次的得分区间的右端点,所以⑤填 base+upper

posted @ 2021-09-04 23:05  wweiyi  阅读(40)  评论(0编辑  收藏  举报
js脚本