初赛答案及解析 by Caristra

本文精选了多项计算机科学竞赛中的经典题目,涵盖算法、数据结构、编程等多个方面,通过详细解析帮助读者深入理解解题思路,提升编程技能。

单项选择题:

T1T_1T1.DDD
考点:计算机常识
MySQLMySQLMySQL是一种数据库系统

T2T_2T2.AAA
考点:进制转换的计算方法
不难计算出 2A.58(16)=42.343752A.58(16)=42.343752A.58(16)=42.34375101010.101(2)=42.625101010.101(2)=42.625101010.101(2)=42.62552.3(8)=42.37552.3(8)=42.37552.3(8)=42.375
2A.58(16)2A.58(16)2A.58(16)最小。

T3T_3T3.BBB
考点:原码、反码、补码的转换
因为+127+127+127是正数,所以它的反码,补码与原码一样;
−39-3939的补码的十六进制为D9D9D9
因为−128-128128是负数,所以它的补码是反码+1+1+1,即为100000011 000 000110000001

T4T_4T4.CCC
考点:计算机常识
PLDPLDPLD是一种控制器(其实根本就没见过…)
CD−ROMCD-ROMCDROM是光盘存储器
CacheCacheCache是高速缓存
FloppyDiskFloppy DiskFloppyDisk是软盘

T5T_5T5.CCC
考点:有关浮点数的基础知识

T6T_6T6.CCC
考点:计算机常识。
其实这个地址线有xxx根,那么它的存储容量就是2x2^x2x B。

T7T_7T7.DDD
考点:图的基础知识
树的深度优先的遍历与树的先序遍历时类似的,但是深度优先遍历的结果不是确定的,它没有左右子树的先后顺序之分。

T8T_8T8.CCC
考点:主定理
此题的a=3,b=2,f(N)=Na=3,b=2,f(N)=Na=3,b=2,f(N)=N;那么Nlog3>f(N)Nlog 3 > f(N)Nlog3>f(N)T(N)=O(Nlog⁡3)T(N)=O(N\log 3)T(N)=O(Nlog3)

T9T_9T9.BBB
考点:枚举+组合
因为N是一个三位数,不妨设N=abc‾N=\overline{abc}N=abc
又因为N是3的倍数,即3∣(a+b+c)3|(a+b+c)3(a+b+c)
不妨设a+b+c=3k(k=2,…,8)a+b+c=3k(k=2,…,8)a+b+c=3k(k=2,,8)
对于k=2k=2k=2的情况,满足条件的{a,b,ca,b,ca,b,c}==={1,2,31,2,31,2,3}.
对于k=3k=3k=3的情况,满足条件的{a,b,ca,b,ca,b,c}={1,2,61,2,61,2,6},{1,3,51,3,51,3,5},{2,3,42,3,42,3,4}.
对于k=4k=4k=4的情况,满足条件的{a,b,ca,b,ca,b,c}={1,2,91,2,91,2,9},{1,3,81,3,81,3,8},{1,4,71,4,71,4,7},{1,5,61,5,61,5,6},{2,3,72,3,72,3,7},{2,4,62,4,62,4,6},{3,4,53,4,53,4,5}.
对于k=5k=5k=5的情况,满足条件的{a,b,ca,b,ca,b,c}={1,5,91,5,91,5,9},{1,6,81,6,81,6,8},{2,4,92,4,92,4,9},{2,5,82,5,82,5,8},{2,6,72,6,72,6,7},{3,4,83,4,83,4,8},{3,5,73,5,73,5,7},{4,5,64,5,64,5,6}.
由对称性可知,答案为(8+2∗(7+3+1))∗A33=180(8+2*(7+3+1))*A_3^3=180(8+2(7+3+1))A33=180

T10T_{10}T10.BBB
考点:枚举+二进制
枚举答案nnn,用nnn位的二进制来表示每个人每一场是哪一方的,即可求解。
egegeg:三位二进制可以唯一标识888个人,000,001,010,011,100,101,110,111000,001,010,011,100,101,110,111000,001,010,011,100,101,110,111
每两个二进制之间至少有一位是不同的,达成条件。如果人再多一些还要考虑每队最多人数限制。

T11T_{11}T11.AAA
考点:图+博弈模拟找规律
小数据模拟不难发现 符合题意的N满足N*(N-1)/2为奇数。
证明:
首先,2k+12k+12k+1个结点与2k2k2k个结点的情况是一样的,因为其多出了个不能对其操作的结点,最简单的例子是111个结点和000个结点,次简单点的可以自己画个222333个结点或444555个结点的来分析.所以只用讨论2k2k2k个结点的情况.2k2k2k个结点有 k∗(2k−1)k*( 2k - 1 )k(2k1)条边,当有奇数条边时,就能保证先手必胜.所以k=1,3,5,7…k = 1,3,5,7…k=1357换成对应的2k2k2k以及2k+12k+12k+1,即2,3,6,7,10,11,14,15…2,3,6,7,10,11,14,15…2,3,6,7,10,11,14,15都可以满足情况.又因为题目限制2k≤152k\le152k152k+1≤152k+1\le152k+115,那么符合要求的N=2,3,6,7,10,11,14,15N=2,3,6,7,10,11,14,15N=2,3,6,7,10,11,14,15.共888个.

T12T_{12}T12.BBB
考点:有关图的算法的基础知识
因为只有拓扑排序的前提必须是无环图

T13T_{13}T13.AAA
考点:链表+复杂度
把一个单链表 链接在另一个单链表之后,只需要遍历那个长度为mmm的单链表,找到尾结点,然后把长度为nnn的单链表头结点赋给它的nextnextnext域 ,遍历单链表的时间复杂度为Θ(m)\Theta(m)Θ(m)

T14T_{14}T14.BBB
考点:平衡树
所有非叶结点的平衡因子均为111,即平衡二叉树满足平衡的最少结点情况,如下图所示。对于高度为NNN、左右子树的高度分别为N−1N-1N1N−2N-2N2、所有非叶结点的平衡因子均为1的平衡二叉树,总结点数的公式为:CN=CN−1+CN−2+1,C1=1,C2=2,C3=2+1+1=4C_N=C_{N-1}+C_{N-2}+1,C_1=1,C_2=2,C_3=2+1+1=4CN=CN1+CN2+1C1=1C2=2C3=2+1+1=4,可推出C6=20C_6=20C6=20
在这里插入图片描述
【画图法】先画出T1T_1T1T2T_2T2;然后新建一个根结点,连接T2T_2T2T1T_1T1构成T3T_3T3;新建一个根结点,连接T3T_3T3T2T_2T2构成T4T_4T4;……依此类推,直到画出T6T_6T6,可知T6T_6T6的结点数为202020
【排除法】对于选项AAA,高度为666、结点数为101010的树怎么也无法达到平衡。对于选项CCC,结点较多时,考虑较极端情形,即第666层只有最左叶子的完全二叉树刚好有323232个结点,虽然满足平衡的条件,但显然再删去部分结点,依然不影响平衡,不是最少结点的情况。同理DDD错误。只可能选BBB

T15T_{15}T15.BBB
考点:组合
平面内有111111个点,如果没有多个点在一条线上,最多可以有C112=11∗102=55C_{11}^{2}=11*\frac{10}{2}=55C112=11210=55
而目前只连成484848条直线,说明有多个点在一条线上。55−48=755-48=75548=7
而三个点在一条直线上,减少C32−1=2C_3^2 - 1 =2C321=2条线
四个点在一条线上,减少C42−1=5C_4^2 - 1 = 5C421=5
五个点在一条线上,减少C52−1=9C_5^2 - 1 = 9C521=9
所以有一组三个点共线有一组四个点共线
如果没有333个或333个以上的点在一条直线上,则可以连上C113=165C_{11}^3=165C113=165
三个点共线会减少的三角数为 C33=1C_3^3 = 1C33=1
四个点共线会减少的三角数为 C43=4C_4^3= 4C43=4
所以 最终可连接的个数为 165−1−5=160165 -1 - 5 =16016515=160

不定项选择题:

T1T_1T1.CDCDCD
考点:排序复杂度

T2T_2T2.ABDABDABD
考点:有关图论的算法

T3T_3T3.AEAEAE
考点:概率
这道题目容易弄错的地方就在于,把第二次选择当作整个游戏。如果跳过前面的排除,直接跳到第二次选择:你现有的和剩下的一个盒子中只有一个装了球。当然换或者不换获胜的概率都是 12\frac{1}{2}21,但是综合前面的情况来看,第二次选择 获胜 有两种情况:

  1. 不修改选择并获胜,表示第一次已经选对。概率为:13∗12=16\frac{1}{3} * \frac{1}{2} = \frac{1}{6}3121=61
  2. 修改选择并 获胜,表示第一次选错。概率为:23∗12=26\frac{2}{3} * \frac{1}{2} = \frac{2}{6}3221=62

综上可知,第二次选择中修改选择后获胜的概率较大。
注意, 这里的 26\frac{2}{6}62 并不是整个游戏中改选的获胜概率!第二次选择,胜负的概率各为 12\frac{1}{2}21,这里的 26\frac{2}{6}62 只是第二次选择中通过改选达到获胜的概率。
那整个游戏中改选获胜的概率是多少呢?333个盒子可能不容易看清,我们把问题改成:有101010个盒子,选择完成之后移除888个空盒子。那么第一次选择的盒子有球的概率是110\frac{1}{10}101,剩下 999个盒子有球的概率是 910\frac{9}{10}109;移除 888 个空盒子相当于告诉你这 888 个盒子有球的概率为 000,但是 999个盒子有球的总概率为 910\frac{9}{10}109 是没有变的,这就表明剩下的那个盒子有球的概率是910\frac{9}{10}109,如果改选这个盒子获胜的概率就是 910\frac{9}{10}109。同理,对于 333 个盒子,改选获胜的概率是 23\frac{2}{3}32

T4T_4T4.ABCDABCDABCD
考点:计算机领域的名人
午治•布尔(Boolean George),1847年发表《思维规律研究》创立逻辑代数学,成功地把形式逻辑归结为一种代数,布尔认为,逻辑中的各种命题能够使用数学符号来代表,并能依据规则推导出相应于逻辑问题的适当结论。布尔的逻辑代数理论建立在两种逻辑值“真True”、“假False”和三种逻辑关系“与AND”、“或OR”、“非NOT”。这种理论为数字电子计算机的二进制、形关逻辑元件和逻辑电路的设计辅平了道路。1854年,布尔出版了名著《布尔代数》
香农(C.E.Sharnorn),信息论创始人之一,1938年在其一篇硕士论文中指出:能够用二进制系统表达布尔代数中的逻辑关系,用“1”代表“真True”,用“0”代表“假False”,并由此用二进制系统来构筑逻辑运算系统。并指出,以布尔代数为基础,任何一个机械性推理过程,对电子计算机来说,都能像处理普通计算一样容易。香农把布尔代数与计算机二进制联系在了一起。
艾兹格•迪科斯彻 (Edsger Wybe Dijkstra),Dijkstra最短路径算法的创造者,ALGOL60编译器的共同创造者,第一个支持递归的汇编者,创造了计算机术语“载体(vector)”和“栈(stack)”
阿达•洛芙莱斯 (Ada Augusta Byron),数学家,第一个程序员。计算机程序创始人,建立了循环和子程序概念。

T5T_5T5.ABCABCABC
考点:计算机常识
1、因为ping的话 后面跟的是地址,所以要先将域名转换为ip地址,即用到了DNS
2、获取到ip地址后,在数据链路层是根据MAC地址传输的,所以要用到ARP解析服务,获取到MAC地址
3、ping功能是测试另一台主机是否可达,程序发送一份ICMP回显请求给目标主机,并等待返回ICMP回显应答,(ICMP主要是用于ip主机、路由器之间传递控制信息,控制信息是指网络通不通,主机是否科大)
4、TCP的话,不涉及数据传输,不会用到

问题求解:

T1T_1T1.505050
考点:枚举+分类讨论+组合

不妨设甲乙两人去的数分别为a1≤a2≤a3≤a4≤a5≤a6a_1 \le a_2 \le a_3 \le a_4 \le a_5 \le a_6a1a2a3a4a5a6

分类讨论:
、当两人取的数两两不同时
可知 a1&lt;a2&lt;a3&lt;a4&lt;a5&lt;a6a_1 &lt; a_2 &lt; a_3 &lt; a_4 &lt; a_5 &lt; a_6a1<a2<a3<a4<a5<a6
易知 x1=a1,y3=a6x_1=a_1 , y_3=a_6x1=a1,y3=a6

  1. y1=a2y_1=a_2y1=a2时,x2=a3x_2=a_3x2=a3 若不然,有y2=a3,y2&lt;x2y_2=a_3,y_2&lt;x_2y2=a3,y2<x2矛盾,那么此时有{y2=a4x3=a5\begin{cases}y_2=a_4\\ x_3=a_5\end{cases}{y2=a4x3=a5{y2=a5x3=a4\begin{cases}y_2=a_5\\ x_3=a_4\end{cases}{y2=a5x3=a4 ,共222种情况。
  2. y1=a3y_1=a_3y1=a3时,易知 x2=a2x_2=a_2x2=a2 ,那么有 {y2=a4x3=a5\begin{cases} y_2=a_4 \\ x_3=a_5\end{cases}{y2=a4x3=a5{y2=a5x3=a4\begin{cases}y_2=a_5\\ x_3=a_4\end{cases}{y2=a5x3=a4,共222种情况。
  3. y1=a4y_1=a_4y1=a4时,x2=a2,x3=a3x_2=a_2,x_3=a_3x2=a2,x3=a3,有y2=a5y_2=a_5y2=a5 ,共111种情况。
  4. y1=a5y_1=a_5y1=a5,不可能。

∴ 共555种情况,即5∗Cn65*C_n^65Cn6种。

、当两人取的数仅有一对相同时

  1. a1=a2&lt;a3&lt;a4&lt;a5&lt;a6a_1=a_2&lt;a_3&lt;a_4&lt;a_5&lt;a_6a1=a2<a3<a4<a5<a6,则x1=a1,y3=a6x_1=a_1,y_3=a_6x1=a1,y3=a6,易知x2=a2x_2=a_2x2=a2y1=a2y_1=a_2y1=a2均会矛盾。同理,a1&lt;a2&lt;a3&lt;a4&lt;a5=a6a_1&lt;a_2&lt;a_3&lt;a_4&lt;a_5=a_6a1<a2<a3<a4<a5=a6亦矛盾。
  2. a1&lt;a2=a3&lt;a4&lt;a5&lt;a6a_1&lt;a_2=a_3&lt;a_4&lt;a_5&lt;a_6a1<a2=a3<a4<a5<a6,易知,x1=a1,y3=a6x_1=a_1,y_3=a_6x1=a1,y3=a6
    (i) 当y1=a2y_1=a_2y1=a2时,易知x2=a3x_2=a_3x2=a3,那么有{y2=a4x3=a5\begin{cases}y_2=a_4\\ x_3=a_5\end{cases}{y2=a4x3=a5{y2=a5x3=a4\begin{cases}y_2=a_5\\ x_3=a_4\end{cases}{y2=a5x3=a4,共222种情况。
    (ii) 当y1=a4y_1=a_4y1=a4时,发现仅有x1=a1=,x2=a2,x3=a3x_1=a_1=,x_2=a_2,x_3=a_3x1=a1=,x2=a2,x3=a3时矛盾
    ∴共222种情况,同理可知,a1&lt;a2&lt;a3&lt;a4=a5&lt;a6a_1&lt;a_2&lt;a_3&lt;a_4=a_5&lt;a_6a1<a2<a3<a4=a5<a6亦有2种情况。
  3. a1&lt;a2&lt;a3=a4&lt;a5&lt;a6a_1&lt;a_2&lt;a_3=a_4&lt;a_5&lt;a_6a1<a2<a3=a4<a5<a6,易知x1=a1,y3=a6x_1=a_1,y_3=a_6x1=a1,y3=a6
    (i) 当y1=a2y_1=a_2y1=a2时,若x2=a3x_2=a_3x2=a3,则y3=a5y_3=a_5y3=a5,从而x3=a4x_3=a_4x3=a4矛盾。又易知x2≠a5x_2\ne a_5x2̸=a5,故不存在。
    (ii) 当y1=a4y_1=a_4y1=a4时,易知y2=a5y_2=a_5y2=a5,则{x1=a1x2=a2x3=a3\begin{cases}x_1=a_1 \\ x_2=a_2 \\ x_3=a_3\end{cases}x1=a1x2=a2x3=a3,{y1=a4y2=a5y3=a6\begin{cases}y_1=a_4\\ y_2=a_5 \\ y_3=a_6\end{cases}y1=a4y2=a5y3=a6 共1种情况。

∴共555种情况,即5∗Cn55*C_n^55Cn5种。

、当两人取的数有两对相同时

  • 由上述222类情况可知,a1≠a2,a5≠a6a_1\ne a_2,a_5\ne a_6a1̸=a2,a5̸=a6,即不能连等。那么只可能是a1&lt;a2=a3&lt;a4=a5&lt;a6a_1&lt;a_2=a_3&lt;a_4=a_5&lt;a_6a1<a2=a3<a4=a5<a6,那么有{x1=a1x2=a2x3=a4\begin{cases}x_1=a_1 \\ x_2=a_2 \\ x_3=a_4\end{cases}x1=a1x2=a2x3=a4,{y1=a3y2=a5y3=a6\begin{cases}y_1=a_3\\ y_2=a_5 \\ y_3=a_6\end{cases}y1=a3y2=a5y3=a6

∴共111种情况,即Cn4C_n^4Cn4种。

综上所述ans=5∗Cn6+5∗Cn5+Cn4ans=5*C_n^6+5*C_n^5+C_n^4ans=5Cn6+5Cn5+Cn4
此题只是弱化版…带入公式即可。

T2T_2T2. 163\frac{16}{3}316
考点:期望+数列求极限
不难发现游戏只会进行偶数局,那么可以设一回合为两局。
不难推出一人多赢一局的概率为(34)2+(14)2=58(\frac{3}{4})^2+(\frac{1}{4})^2 = \frac{5}{8}(43)2+(41)2=85
则一人多赢两局的概率为
E(x)=(1∗(38)+2∗(58)∗(38)+3∗582∗38...)E(x)= (1*(\frac{3}{8}) + 2*(\frac{5}{8})*(\frac{3}{8}) + 3*\frac{5}{8}^2*\frac{3}{8} ...)E(x)=(1(83)+2(85)(83)+385283...)
=34∗(∑i=1∞i∗(58)i−1)= \frac{3}{4} * (\sum_{i=1}^{\infin} i*(\frac{5}{8})^{i-1})=43(i=1i(85)i1)(具体见下)
=163= \frac{16}{3}=316
S=∑i=1∞i∗(58)i−1S=\sum_{i=1}^{\infin}{i*(\frac{5}{8})^{i-1}}S=i=1i(85)i1.
58S=∑i=0∞i∗(58)i=∑i=1∞(i−1)∗(58)i−1\frac{5}{8}S=\sum_{i=0}^{\infin}{i*(\frac{5}{8})^i}=\sum_{i=1}^{\infin}{(i-1)*(\frac{5}{8})^{i-1}}85S=i=0i(85)i=i=1(i1)(85)i1
58S−S=∑i=1∞−(58)i−1=−∑i−1∞(58)i=11−58\frac{5}{8}S-S=\sum_{i=1}^{\infin}{-(\frac{5}{8})^{i-1}}=-\sum_{i-1}^{\infin}{(\frac{5}{8})^i}=\frac{1}{1-\frac{5}{8}}85SS=i=1(85)i1=i1(85)i=1851
S=649S=\frac{64}{9}S=964

阅读程序:

T1T_1T1.134813481348
考点:模拟
将数进行加该数的所有位上的数10次。
模拟:
1234−&gt;1244−&gt;1255−&gt;1268−&gt;1285−&gt;1301−&gt;1306−&gt;1316−&gt;1327−&gt;1340−&gt;13481234-&gt;1244-&gt;1255-&gt;1268-&gt;1285-&gt;1301-&gt;1306-&gt;1316-&gt;1327-&gt;1340-&gt;13481234>1244>1255>1268>1285>1301>1306>1316>1327>1340>1348

T2T_2T2.373737
考点:模拟 递归+分治(瞎搞)

T3T_3T3.5,6,6,7,7,5,6,6,7,7,5,6,6,7,7,
考点:树上各点能到达的最长距离(203上买房子2)

T4T_4T4.
545454 714714714
609609609 878418784187841
考点:斐波那契数列求和以及平方和
(∑i=1nfi)=fn+fn+1−1(\sum_{i=1}^{n}{f_i})=f_n+f_{n+1}-1(i=1nfi)=fn+fn+11
(∑i=1n(fi)2)=fn∗fn+1(\sum_{i=1}^{n}{(f_i)^2})=f_n*f_{n+1}(i=1n(fi)2)=fnfn+1

完善程序:

T1T_1T1.
1.s&lt;(1&lt;&lt;(n∗m))s&lt;(1&lt;&lt;(n*m))s<(1<<(nm))
2. i∗m+ji*m+jim+j
3. mp[i][j]=1mp[i][j]=1mp[i][j]=1
4. checkcheckcheck_success()success()success()
5. a=a∗aa=a*aa=aa%modmodmod
6. k==−1k==-1k==1
7. Pow(Pow(2,n−1),m−1)Pow(Pow(2,n-1),m-1)Pow(Pow(2,n1),m1)
考点:暴力二进制枚举+数学

T2T_2T2.
1.prime[tot++]=iprime[tot++]=iprime[tot++]=i
2.n&gt;1n&gt;1n>1
3. dfs(i+1,m/prime[i])dfs(i+1,m/prime[i])dfs(i+1,m/prime[i])
4.L&lt;RL&lt;RL<R
5. dfs(0,mid)dfs(0,mid)dfs(0,mid)
6.LLL
考点:质因数分解+二分+容斥

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值