T1 
100% 
 
第一行输出 n n n #。
中间 n − 2 n-2 n − 2 #、n − 2 n-2 n − 2 #。
第 n n n n n n #。
时间复杂度 O ( n 2 ) O(n^2) O ( n 2 ) 
T2 
100% 
 
用因式分解的方法找出 N N N B B B 
设 N N N c n t cnt c n t c n t ≥ 2 cnt\geq 2 c n t ≥ 2 B [ c n t − 1 ] B[cnt-1] B [ c n t − 1 ] − 1 -1 − 1 
时间复杂度 O ( N ) O(\sqrt N) O ( N  ) 
T3 
100% 
 
先循环第一遍,统计数字 x x x A A A c n t a [ x ] cnta[x] c n t a [ x ] 
然后循环第二遍,计算数组 B B B 
再循环第三遍,统计数字 x x x B B B c n t b [ x ] cntb[x] c n t b [ x ] 
答案就是满足 c n t b [ x ] cntb[x] c n t b [ x ] x x x 
注意:虽然四遍循环的范围都是 1 ∼ n 1\sim n 1 ∼ n c n t a cnta c n t a 10 7 10^7 1 0 7 
时间复杂度 O ( n ) O(n) O ( n ) 
T4 
40% 
 
两重循环模拟 k k k m m m 
时间复杂度 O ( k log  ( n ) ) O(k\log(n)) O ( k log  ( n )) 
60% 
 
当 n n n 10 100000 10^{100000} 1 0 100000 
虽然 n n n lg  ( n ) × 9 + m ≤ 2 × 10 6 \lg(n)\times 9+m\leq 2\times 10^6 lg  ( n ) × 9 + m ≤ 2 × 1 0 6 n n n k − 1 k-1 k − 1 
对于测试点#5~6 ,因为 m = 0 m=0 m = 0 k − 1 k-1 k − 1 
时间复杂度 O ( log  ( n ) ) O(\log(n)) O ( log  ( n )) 
100% 
 
n n n 2 × 10 6 2\times 10^6 2 × 1 0 6 k k k 10 18 10^{18} 1 0 18 2 × 10 6 2\times 10^6 2 × 1 0 6 k > 2 × 10 6 k>2\times 10^6 k > 2 × 1 0 6 
记录 t [ x ] t[x] t [ x ] x x x 出现过 的数字 y y y y y y y y y L L L k − ( t [ y ] + L ) k-(t[y]+L) k − ( t [ y ] + L ) L L L 
时间复杂度 O ( log  ( n ) + m log  ( m ) ) O(\log(n)+m\log(m)) O ( log  ( n ) + m log  ( m )) 
T5 
40% 
 
用一重循环枚举除数 i i i N m o d     i N\mod i N mod i 
时间复杂度 O ( N ) O(N) O ( N ) 
100% 
 
N m o d     i = N − ⌊ N i ⌋ × i N\mod i=N-\lfloor\frac{N}{i}\rfloor \times i N mod i = N − ⌊ i N  ⌋ × i 
随着 i i i ⌊ N i ⌋ \lfloor \frac{N}{i} \rfloor ⌊ i N  ⌋ [ 1 , n ] [1,n] [ 1 , n ] k k k [ l 1 , r 1 ] , [ l 2 , r 2 ] , … , [ l k , r k ] [l_1, r_1], [l_2,r_2], \dots, [l_k,r_k] [ l 1  , r 1  ] , [ l 2  , r 2  ] , … , [ l k  , r k  ] [ l i , r i ] ( 1 ≤ i ≤ k ) [l_i, r_i](1\leq i\leq k) [ l i  , r i  ] ( 1 ≤ i ≤ k ) x , y x, y x , y x , y ∈ [ l i , r i ] x,y \in [l_i, r_i] x , y ∈ [ l i  , r i  ] x , y x,y x , y x ∈ [ l i , r i ] , y ∉ [ l i , r i ] x\in [l_i,r_i],y \notin [l_i,r_i] x ∈ [ l i  , r i  ] , y ∈ / [ l i  , r i  ] v i = ⌊ N l i ⌋ v_i=\lfloor \frac{N}{l_i} \rfloor v i  = ⌊ l i  N  ⌋ 
可以证明 k ≤ 2 × N k\leq 2\times \sqrt{N} k ≤ 2 × N  
对于满足 1 ≤ i ≤ k , l i ≤ N 1\leq i\leq k,l_i \leq \sqrt{N} 1 ≤ i ≤ k , l i  ≤ N  i i i N \sqrt{N} N  l i l_i l i  
对于满足 1 ≤ i ≤ k , l i > N 1\leq i\leq k, l_i \gt \sqrt{N} 1 ≤ i ≤ k , l i  > N  i i i N \sqrt{N} N  l i > N l_i \gt \sqrt{N} l i  > N  v i ≤ N v_i \leq \sqrt{N} v i  ≤ N  v i v_i v i  i i i N \sqrt{N} N  
所以一共最多不超过 2 × N 2\times \sqrt N 2 × N  
答案即为 $N^2 - \sum_{i=1}^{k}(v_i \times \sum_{j=l_i}^{r_i}j)$,其中 ∑ j = l i r i j \sum_{j=l_i}^{r_i}j ∑ j = l i  r i   j O ( 1 ) O(1) O ( 1 ) 
考虑当 l i ( 1 ≤ i ≤ k ) l_i(1\leq i \leq k) l i  ( 1 ≤ i ≤ k ) r i r_i r i  
因为随着 i i i ⌊ N i ⌋ \lfloor\frac{N}{i}\rfloor ⌊ i N  ⌋ r i r_i r i  r i r_i r i  x x x 
时间复杂度 O ( N log  ( N ) ) O(\sqrt N\log(N)) O ( N  log  ( N )) 
根据划分方法,r i r_i r i  ⌊ N x ⌋ = v i \lfloor \frac{N}{x} \rfloor = v_i ⌊ x N  ⌋ = v i  x x x O ( 1 ) O(1) O ( 1 ) r i = ⌊ N v i ⌋ r_i = \lfloor \frac{N}{v_i} \rfloor r i  = ⌊ v i  N  ⌋ 
时间复杂度 O ( N ) O(\sqrt N) O ( N  ) 
T6 
10% 
 
用 DFS \text{DFS} DFS 
注意如果无法在 t t t m m m − 1 -1 − 1 
时间复杂度 O ( n ! ) O(n!) O ( n !) 
30% 
 
对于测试点#2~3 ,因为 c i = 0 c_i=0 c i  = 0 
枚举每一个知识点是否选择,方案数不超过 2 n 2^n 2 n 
时间复杂度 O ( 2 n ) O(2^n) O ( 2 n ) 
结合第一部分可以拿到 30 % 30\% 30% 
50% 
 
如果已经确定选择复习的知识点,考虑如何安排复习顺序能让花费的时间最少。此时只有 c i c_i c i  c i c_i c i  
因此先按 c i c_i c i  2 n 2^n 2 n 
时间复杂度 O ( 2 n ) O(2^n) O ( 2 n ) 
100% 
 
按 c i c_i c i  ⌊ n 2 ⌋ \lfloor\frac{n}{2}\rfloor ⌊ 2 n  ⌋ n − ⌊ n 2 ⌋ n-\lfloor\frac{n}{2}\rfloor n − ⌊ 2 n  ⌋ 
枚举前半部分的 2 ⌊ n 2 ⌋ 2^{\lfloor\frac{n}{2}\rfloor} 2 ⌊ 2 n  ⌋ i i i h a n s [ i ] hans[i] han s [ i ] h a n s [ i ] hans[i] han s [ i ] A A A B B B A A A B B B A A A B B B A A A 
具体实现上,可以将 h a n s [ i ] hans[i] han s [ i ] 
枚举后半部分的 2 n − ⌊ n 2 ⌋ 2^{n-\lfloor\frac{n}{2}\rfloor} 2 n − ⌊ 2 n  ⌋ i i i m − i m-i m − i c i c_i c i  s u m c sumc s u m c n o w t nowt n o wt s u m c × ( m − i ) sumc\times (m-i) s u m c × ( m − i ) h a n s [ m − i ] hans[m-i] han s [ m − i ] t − n o w t t-nowt t − n o wt 
注意有可能出现 h a n s [ m − i ] hans[m-i] han s [ m − i ] t − n o w t t-nowt t − n o wt 
时间复杂度 O ( n 2 n − ⌊ n 2 ⌋ ) O(n2^{n-\lfloor\frac{n}{2}\rfloor}) O ( n 2 n − ⌊ 2 n  ⌋ )