zoukankan      html  css  js  c++  java
  • 【LGR-(-11)】CSP 2020 第一轮(初赛)模拟 题解

    CSDN同步

    前言

    一开始查排名的时候不知道为啥翻遍了排名榜都没找到。

    后来才找到了?(94) 分竟然没找到,佩服佩服。

    链接在这 ( ightarrow) 2020 洛谷初赛模拟

    如果乐意直接看答案的话,公布一手:

    ABCBA CABCB DBACD
    FTTTBA
    FFTTAA
    FFFTCC
    CDDAC
    CBDCB
    

    题解

    单项选择题

    (1) 题,首先符号位是 (1)(负数),其次 (124_{(10)} = 01110010_{(2)}),补码即为 (10001101),然后接上符号位是 (10001110). 选 (A).

    (2) 题排除法,(ACD) 都是著名 ( ext{OJ}),选 (B).

    (3) 题,考虑一个类似 ( ext{Cantor}) 的做法。

    ((B-A) * 26^2 + (Y-A) * 26^1 + (T-A) * 26^0 = 1319),然后 (1) 位的有 (26) 个,(2) 位的有 (26^2) 个,(1319+26+26^2 = 2021) 个。

    所以编号为 (2022),选 (C).

    (4) 题,我竟然错了 (frac{4096 * 2160 * 24 bit}{1024 * 1024 * 8} = 25MB)(物理上的等号,约等于)。选 (B).

    (5) 题,本人也没搞懂是什么算法(后来知道是一个叫 nth_element 的东西)可以做到 (mathcal{O}(n)),但是好像没说能用算法解决,所以问题转化为四个复杂度最优的是哪个?选 (A).

    (6) 题,((1)) 必然是错的,因为没有强调 连通图((2)(3)) 都是对的,((4)) 也是错的。因为树是无向无环的。选 (C).

    (7) 题,我也错了 其实这题类似于合并果子的最小代价,不过是反向的合并果子(拆分果子?),最优方案是:(42 = 15 + 27 = (10 + 5) + (13 + 14)),代价为 (42 + 15 + 27 = 84),选 (A).

    (8) 题,根据先中遍历可以唯一确定树。

    (H) 是根。然后按照题目的方法(即完全二叉树的存储方法,学过线段树的应该都知道),最大的 (E)(13). 选 (B).

    (9) 题,暴力题,不说了,选 (C).

    (10) 题,最优的情况是,第一次查找的就是链表第一个元素,第 (i (i > 1)) 次查找的是第 (i-1) 次查找后插入的元素。(mathcal{O}(k)),选 (B).

    (11) 题,可以枚举。

    (A) (B) (C)
    (5) (1) (0)
    (5) (0) (1)
    (4) (2) (0)
    (4) (1) (1)
    (4) (0) (2)
    (3) (3) (0)
    (3) (2) (1)
    (3) (1) (2)
    (3) (0) (3)
    (2) (4) (0)
    (2) (3) (1)
    (2) (2) (2)
    (2) (1) (3)
    (1) (4) (1)
    (1) (3) (2)
    (1) (2) (3)
    (0) (4) (2)
    (0) (3) (3)

    (18) 种,选 (D).

    (12) 题,只有插入排序复杂度为 (mathcal{O}(n^2)). 选 (B).

    (13) 题,大概像我这种出题比较多的造数据都会用到。

    ([a,b-1] ightarrow [0,b-a-1] + a ightarrow ext{rand()}\% ext{(b-a)} + a),选 (A).

    (14) 题,完全图有 (7 imes 6 div 2 = 21) 条边,森林有 (7-1=6) 条边,删去 (15) 条,选 (C).

    (15) 题,常识题,选 (D).

    阅读程序题

    (1)

    该程序的功能就是记忆化计算了 (gu) 函数的值。(gu) 没有应用意义。可以发现 (gu_{i,j} = gu_{i,j-1} (j \% 2 =0))

    1. 显然 (m) 是奇数不影响做法。(F).
    2. 会改变,因为那样会把 (=m) 的答案也加上了。(T)
    3. 删去记忆化的代码会增高时间复杂度,但不影响答案。(T).
    4. 显然,(T).
    5. 建立二维表即可,(B).
    6. 记忆化计算 (nm) 个值,每次计算复杂度为 (mathcal{O}(m)),所以为 (mathcal{O}(m^2n)),选 (a)

    (2)

    我也不知道这程序是干嘛的,题错了 (1) 个。???

    不过 (f) 存的是最短路,老 ( ext{Floyd}) 家都知道。

    1. ( ext{Floyd}) 家了,肯定影响答案。(F).
    2. 该程序复杂度为 (mathcal{O}(n^4 + m)),虽然 (m) 影响很小,但还是含有的。(F).
    3. (F) 数组最大为 (100 imes 10000 = 10^6)( ext{ans}) 最大约可达到 (10^6 imes 100 = 10^8),因此 (10^7) 不够大。(T).
    4. 显然不变,对 (x)(y) 类似的松弛操作没有顺序。(T).
    5. 我是人工算的,(A).
    6. 都说了是 ( ext{Floyd}) 了,(A).

    (3)

    写过 ( ext{NOIP2016 tg}) 组合数问题的人应该都知道,(A_{i,j} = C_i^j)( ext{sum}) 就是杨辉三角的前缀和。

    1. 显然,(i=j) 时为 (1)(F).
    2. 不是排列数,是组合数。可枚举验证。(F).
    3. 本来应该是对的,但是由于有模数,(1000) 之内的组合数远远大于 (19260817),可能出现加和模之后变小。(F).
    4. 没有溢出问题的话,这样写是对的。这个写法也常用来对负数取模。(T).
    5. (4) 分!(10) 以内的最大组合数为 (C_{10}^5 = 252),选 (C).
    6. 手算一下前缀和即可。答案为 (50),选 (C).

    完善程序题

    (1)

    理解程序的原理很重要,本人在第 (2) 小题也卡了一会儿。

    该原理就是,可以建立树,(a_i)(i) 的父亲。从不被关注的叶子节点开始,叶子节点首先枪毙。然后往上走,如果 当前节点不被枪毙 并且 没有人关注当前节点的父亲节点,则毙掉父亲节点。边也要断掉。

    1. 断边操作需要减掉一个度。选 (C).
    2. 只有不被关注的节点(叶子节点)才会被 ( ext{dfs}),选 (D).
    3. 很显然,对于一条链,分奇偶枪毙。选 (D).
    4. 毙掉叶子节点,选 (A).
    5. 最后出现的是没有访问过的节点,选 (C).

    (2)

    显然,这道题是反向扫一遍,程序原理很简单。反向更新最小值和和,然后直接算、打擂就行。用栈记录最后的答案。

    1. 初始的和为 (s_n),选 (C).
    2. 统计和,选 (B).
    3. 计算除最小值以外的平均值。([i,n])(n-i+1) 个数,去掉最小值是 (n-i) 个,特此说明。选 (D).
    4. (k)( ext{cnt}) 维护的是栈。出现新的答案,应清空栈,然后加入当前的答案。选 (C).
    5. 同样的答案直接加入栈中,熟悉栈的操作。选 (B).
  • 相关阅读:
    题目:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。
    冒泡排序、插入排序、快速排序
    去掉字符串中重复的字符
    建立一个带附加头结点的单链表.实现测长/打印/删除结点/插入结点/逆置/查找中间节点/查找倒数第k个节点/判断是否有环
    day_1 练习2
    python-day 练习1
    python课程第一天笔记-la
    初学react,为什么页面不显示
    跟我一起学写插件开发
    网上下载的带特效的jquery插件怎么用
  • 原文地址:https://www.cnblogs.com/bifanwen/p/13784311.html
Copyright © 2011-2022 走看看