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).
  • 相关阅读:
    svn cleanup failed–previous operation has not finished 解决方法
    开源SNS社区系统推荐
    从网络获取图片本地保存
    MS SQL Server 数据库连接字符串
    KeepAlive
    Configure Git in debian
    sqlserver query time
    RPi Text to Speech (Speech Synthesis)
    SQL Joins with C# LINQ
    search or reseed identity columns in sqlserver 2008
  • 原文地址:https://www.cnblogs.com/bifanwen/p/13784311.html
Copyright © 2011-2022 走看看