题目:
第一题选C,不解释吧,按位与就行
第二题选D,不解释,2*3*sizeof(int*)=48(64位机器上是8字节一个指针)
第三题选C,我不确定,不过,应该是的
第四题选D,明显考的是补码
第5题选D,果断访问错误(这是Java的代码)
第6题选B,大家都懂
第7题果断A啊
第8题果断是B,不解释,大家懂
第9题是B,’0’不是’\0’,这个要注意
第10题果断是Fibonacci,显然是C,前几个是0,1,2,3,5,8,13,21
第11题选C,计算量是2^35*2^4,现在计算机的主频是2^30,所以差不多是几分钟的事,在这里我们假设一个递归调用的指令条数是16(push,pop,ret等)
楼主虽然算出来这个结果,当时还选了几秒种,回来仔细一想,这个几秒钟秒得有点远,二逼了
第12题是B,显然有n=4N1+3N3+2N2+N1+1=N4+n3+n2+n1,所以N0=82,不解释
第13题果断是D,这个老题目了,不解释
第14题是C,二分查找嘛,大家都会,不解释
第15题是Fulkerson算法,算出来是46,每一次选一个增广路径即可,直接选不出来为止
第16题选85,他给出了别人65块的东西和20块钱,应该亏损85块(楼主二了,还加了个100,结果果断错)
第17题是2,不解释Fermart小定理,2^6 mod 7= 1,所以2^100=2^4=16=2 mod 7
第18题,我觉得是B,不知道对不对,这个不会
第19题,算得不太精细,选了A,不确定。
感觉题目我没读清楚,现在还是仍然不会这个题目
第20题C,概率与级数运算,不解释
第21题,果断B,D,malloc,new申请到的是Virtual Memory,不过,windows里面还真可以申请到物理内存,用的是VirtualAllocEx API即可
第22题CD
楼主选了B,C,B主要是没看清题目意思,题目说了二叉搜索树,操蛋,D的话是正确的,可以在常数时间内变成平衡二叉树,因为可以在常数时间里面变成一个有序链表,把一个有序列连链表变成一个平衡树是常数时间吧(递归)
第23题,其实就是解10^15<=n^14<10^16,解出12<=n<= 13,所以选14,15(我是推出n<10^(8/7)然后算出n<=13,
楼主选了DE,A没选,主要是忘记了还有左边的一个式子,二啊,血的教训
第24题,D,因为选出第一个是白的,所以位于A的概率是2/3
这 个题目有争议,在此不解释了
第25,不可能,需要2.8*10^8 bit,而蓝牙只能传2.4*10^7bit所以一帧需要0.2S
第26题(mnlogn)不解释,归并而已
第27题显然是17分钟
1、2先过河,然后1回来,5、10过河,2回来,1、2过河
时间:2+1+10+2+2=17,不解释,读者可以考虑n个人过河的问题,其实原理一样的哦
第28,错两个地方1,没考虑只有一个数,2,可能死循环(给你数组0,2,3让查找1)
楼主两个都想到了,写的时候忘记了写1,悲剧
第29题,果断SkipList,地球人懂的O(PLogpN)
注意SkioList从上向下查找,一层的查找时间是O(p),共LogpN层,所以总时间是O(PlogpN)