第一题:
题目大意:使得 x^x 达到或超过 n 位数字的最小正整数 x 是多少? n<=2*10^9
解题过程:
1.以前看到过这题了,一个数x的位数=(int)lg(x)+1 换一下底就是 ln(x)/ln(2)+1 ; 那么只要求一个最小的x满足 ln(x)/ln(2)+1>=n;
2.考虑到ln(x)/ln(2)+1是单调增的,所以只要二分x就可以快速求解。
第二题:
题目大意:给出n个有序队列,求出所有数中最小的m个。n,m<=10 000
解题过程:
1.这题也是NOI导刊看到过的。。写一个小根堆,一开始每个队列的第一个元素入堆,每次取出堆顶元素,并把其相应的队列的下一个元素压入堆。。再次复习了一次堆。
第三题:
题目大意:一个 A x B 的矩阵乘以一个 B x C 的矩阵将得到一个 A x C 的矩阵,时间复杂度为 A x B x C。矩阵乘法满足结合律(但不满足交换律)。顺序给出 n 个矩阵的大小,请问计算出它们的乘积的最少需要花费多少时间。 n<=100
解题过程:
1.这题就是裸的区间dp,比石子合并还要简单。。具体实现看石子合并即可。
时间: 2024-10-09 23:14:49