NOIP2018初赛 解题报告

版权声明:此文为作者原创,若觉得写得好请点个赞再离开。当然,也欢迎在讨论区指出本文的不足,作者会及时加以改正。转载请注明地址: https://blog.csdn.net/chenxiaoran666/article/details/83443516

前言

N O I P 2018 NOIP2018 初赛已经结束了,接下来就要准备复赛了。

不过,在此之前,还是先为初赛写一篇解题报告吧。


单项选择题

  1. 送分题。(虽然我还是做错了)可以考虑将它们全部转化为 10 10 进制,则 ( 269 ) 16 = ( 617 ) 10 = ( 1151 ) 8 (269)_{16}=(617)_{10}=(1151)_8 ,而 ( 1001101011 ) 2 = ( 619 ) 2 (1001101011)_2=(619)_2 。故选 D D
  2. 常识题。显然 C , C + + , P a s c a l C,C++,Pascal 都是编译执行的,只有 P y t h o n Python 是解释执行的。故选 D D
  3. 一道没什么意义的题目,随便蒙了一个答案。应选 B B
  4. 显然,深度为 0 0 的有 1 1 个节点,深度为 1 1 的有 k k 个节点,深度为 2 2 的有 k 2 k^2 个节点,一次类图,深度为 h h 的有 k h k^h 个节点,于是总节点数 = k 0 + k 1 + k 2 + . . . + k h = k h + 1 1 k 1 =k^0+k^1+k^2+...+k^h=\frac{k^{h+1}-1}{k-1} 。故选 A A
  5. 由于 T ( 0 ) = 1 , T ( n ) = T ( n 1 ) + n T(0)=1,T(n)=T(n-1)+n ,所以可得 T ( n ) = n ( n + 1 ) 2 + 1 T(n)=\frac{n(n+1)}2+1 ,这是近似于 O ( n 2 ) O(n^2) 的。故选 D D
  6. 比较基础的一道题。应选 B B
  7. 显然,如果固定左端点在最左边,则随机选取一个右端点后线段长度期望为 1 2 \frac12 ,再选择一个点,则线段长度期望肯定小于 1 2 \frac12 ,而答案中只有 B B 一个选项是小于 1 2 \frac12 的。故选 B B
  8. 仔细观察,可以发现 B B 选项和 C C 选项本质上是一样的,因此可以排除。 A A D D 选项自己手算验证一下,便能发现 A A 是错误的。故选 A A
  9. 感性理解一下,不管你摸几次球,每次摸到两个球的概率是一样的,所以应该是 1 : 1 1:1 。故选 D D
  10. 手算代入验证一下即可(其实就相当于 x = x & x x-=x\&-x )。应选 B B

不定项选择题

  1. 常识题。特别注意即使是关机的手机也不能带进考场,草稿纸同理。故选 A B AB
  2. 自己画画图即可,这里就不多说了。应选 C D CD
  3. 关于此题, A B D ABD 选项选项显然是错的,而 C C 选项显然有问题。故选 A B D ABD
  4. 这题应该也是挺显然的。应选 A B D ABD
  5. 这种题目考前刚好复习过。应选 B C D BCD

问题求解

  1. 根据第③点,由于丙去了,所以丁一定不去;根据第④点,由于丁不去,而丙去了,说明甲一定去了;根据第②点,由于丁不去,说明乙肯定也没去;根据第①点,由于乙不去,而甲去了,说明周末没下雨。因此答案为:去了 没去 没去 没下雨
  2. 首先要知道一个性质:若设 a b a\le b ,则 a = a   o r   b , b = a   a n d   b a=a\ or\ b,b=a\ and\ b (我也不会证)。对于 b b 1 1 的位数 x x 进行枚举(从 0 5 0\sim5 ),可以发现 a a 2 x 2^x 种选择(每一位选与不选),因此答案就是 i = 0 5 C 5 i 2 i \sum_{i=0}^5C_5^i2^i ,计算得 243 243 ,但由于我们考虑的是 a b a\le b 的情况,因此最终答案应为 243 2 32 = 454 243*2-32=454 (注意去重)。

阅读程序写结果

  1. 模拟即可。答案应为 4 4
  2. 这题本质上就是让你求一张图上有几个环。答案应为 6 6
  3. 熟悉哈希的人都知道, m a g i c ( ) magic() 函数就是一个哈希的过程,因此就是要求出有多少个不同的子串,这应该还是很好数的。答案应为 16 16
  4. 不难发现 g e t N e x t ( ) getNext() 函数就是求当前排列的下一个排列。可以像我一样大力模拟,也可以像奆佬 h l 666 hl666 一样用康拓展开求解。答案应为 2   1   3   5   6   4 2\ 1\ 3\ 5\ 6\ 4 3   2   5   6   1   4 3\ 2\ 5\ 6\ 1\ 4

完善程序

  1. (1)既然它读入 x x 了,就不可能是 a [ i ] = x a[i]=x (否则可以直接读入 a [ i ] a[i] )。故答案应为 a [ x ] = i a[x]=i

    (2)根据双向链表的的对称性可以轻松求解。故答案应为 i + 1 i+1

    (3)同上。故答案应为 R [ a [ i ] ] R[a[i]]

    (4)同上。故答案应为 a [ i ] a[i]

    (5)自己带几组数据算一下即可。故答案应为 R [ i ] R[i]

  2. 这题是一个先贪心、再 D P DP 的过程(其实一开始的贪心是完全多余的)。

    (1)根据此题代码的大致思路,显然可以看出第一个空该填什么。故答案应为 a [ i ] 0.95 < = b [ i ] a[i]*0.95<=b[i]

    (2)这应该也是比较显然的。故答案应为 t o t a l _ a > = t h r e s h o l d total\_a>=threshold

    (3)这一空与上一空差不多,也是判断当前是否已经满足 t h r e s h o l d \ge threshold 。故答案应为 t o t a l _ a + j + a [ i ] total\_a+j+a[i]

    (4)显然,此空填的应该是在第二个商店买东西的总价。故答案应为 f [ j ] + t o t a l _ b t o t a l _ b _ p r e f i x f[j]+total\_b-total\_b\_prefix

    (5)只要会背包的应该都知道,既然它判断了 j > = a [ i ] j>=a[i] ,就肯定是要进行转移了。故答案应为 f [ j a [ i ] ] f[j-a[i]]


后记

这次初赛应该能压线过的。

希望在 N O I P 2018 NOIP2018 中能够取得一个好成绩!

猜你喜欢

转载自blog.csdn.net/chenxiaoran666/article/details/83443516