T1
题目
2025年后的第一个闰年是2028年,直接输出即可。
代码如下:
T2
题目
由于数据范围很大,直接暴力是不现实的,因此我们需要找规律:
41=44^1=441=4,个位为 444。
42=164^2=1642=16,个位为 666。
43=644^3=6443=64,个位为 444。
44=2564^4=25644=256,个位为 666。
因此,不难看出,当 n mod 2=0n\bmod2=0nmod2=0 时,个位为 666,当 n mod 2=1n\bmod2=1nmod2=1 时,个位为 444。
代码如下:
T3
题目
模拟即可,记得开 long long,时间复杂度为 O(n)\mathrm{O} (n)O(n)。
T4
题目
当然可以将每个数依次进行判断,得出质数表,这里讲一种比较高效的算法:埃氏筛法。将 222 到 nnn 之间的整数存在一个 bool 数组中,先全部标记为 true,从 222 开始,把 222 的倍数全部标记为 false,再往下循环,发现下一个质数是 333,再把 333 的倍数全部标记为 false,再往下循环,发现下一个质数是 555,再把 555 的倍数全部标记为 false,以此类推,便能把范围内的质数筛出来,过程中把质数存在数组中,便能得到第 nnn 个质数。
经计算,第 202520252025 个质数在 200002000020000 以内,只要把 200002000020000 以内的质数筛出来即可。
时间复杂度是一个常数,数量级为 10410^4104 。
代码如下:
T5
题目
记录“不快乐”的学生数量 mmm,如果是 mmm 偶数,那么成对交换,如果 mmm 是奇数,那么先将前 m−1m-1m−1 个学生成对交换,再把最后一个学生进行一次合理的交换,最终的交换次数为 ⌊m+12⌋\lfloor \frac{m+1}{2} \rfloor⌊2m+1 ⌋。时间复杂度为 O(Tn)\mathrm{O} (Tn)O(Tn)。
代码如下:
T6
题目
我们知道,对于一个正整数 mmm,从 mmm 开始,每次增加 mmm,所得的结果一定能被 mmm 整除。因此可以得出,对于区间 [1,r−l+1][1,r-l+1][1,r−l+1] 中的任意一个数,区间 [l,r][l,r][l,r] 中一定能找到一个数是它的整数倍。所以在题目中,我们可以假定 l=1l=1l=1 ,这样一定能得到最大的满足条件的区间。所以将 rrr 的值从 111 开始循环即可。每次的时间复杂度接近 O(1)\mathrm{O} (1)O(1)。
代码如下: