NOIP2018初赛 解题报告

前言

\(NOIP2018\)初赛已经结束了,接下来就要准备复赛了。

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

单项选择题

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

不定项选择题

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

问题求解

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

阅读程序写结果

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

完善程序

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

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

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

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

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

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

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

    (2)这应该也是比较显然的。故答案应为\(total\_a>=threshold\)

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

    (4)显然,此空填的应该是在第二个商店买东西的总价。故答案应为\(f[j]+total\_b-total\_b\_prefix\)

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

后记

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

希望在\(NOIP2018\)中能够取得一个好成绩!

败得义无反顾,弱得一无是处
原文地址:https://www.cnblogs.com/chenxiaoran666/p/NOIP2018_primary.html