这道题考查的是对二进制的知识考查,short的位数有12位二进制,int却有18位,当输入超过所规定的位数时,会自动舍去
埃式筛法的时间复杂度就是A
时间复杂度应为O(nlogn+nlogA)=O(nlog(n*A))
验证后可以发现当m<=13时,函数返回值为false,其余均为true,最终输出为最小的满足返回值为true的m,所以答案为14。
此处条件满足时,直接返回u,表示字典序为k的序列当前节点是u。观察选项可知需要判断f[u]和k的大小关系,如果k小于等于f[u],表示以u开头的序列数量超过了k,那么就说明以u+1开头的序列字典序一定大于k,而字典序为k的序列是以u开头的。故此题选B。
此处是拓扑排序中入队的判断条件。deg是入度数组,拓扑排序时,当一个点入度为0时需要入队,由于判断是在36行的自减操作之前,因此条件应为dev[v]==1。故此题选A。
在第45行已经输出了序列的第一个点u,接下来需要不断调用next求下一个点。当求到序列的最后一个节点时,它后面没有其它节点,只有它本身,对应的字典序为1,而只有当k大于1时,执行第47行的--k之后再调用next函数才有意义。故此题选D。
函数next的作用是在以cand中的点作为候选时,求字典序为k的序列的第一个点。进入while循环之前,已经输出了整个序列的第一个点u,接下来应该在被u指向的点里面继续找下一个点,在此之前需要把只包含u一个点的序列去掉,因此需要执行--k。故此题选C。
阅读代码可知,pre[i]表示第二段前i个数的最大值,因此应和pre[i-1]取最大值。故此题选D。
由于mid到j-1范围的最大值都小于max,从i开头分别到它们结尾的序列的最大值都是max,即(j-mid)*max。故此题选A。
阅读代码可知,solve函数对应的区间为左闭右开,下标0到n-1的对应的左闭右开区间是0到n。故此题选A。