1. 枚举(所有可能的情况)
判断是否可以使用枚举:分析数据量
时间限制在1000ms的情况下,大约可以进行
1
0
7
10^{7}
107的运算
复杂度 | 数据量 |
---|---|
O(n!) | 10 |
O( 2 n 2^{n} 2n) | 20 |
O( n 3 n^{3} n3) | 200 |
O( n 2 n^{2} n2) | 3000 |
O( n l o g n nlogn nlogn) | 1 0 6 10^{6} 106 |
O( n n n) | 1 0 7 10^{7} 107 |
O( 1 0 ) \sqrt10) 10) | 1 0 14 10^{14} 1014 |
O( l o g n logn logn) | > 1 0 20 10^{20} 1020 |
1 + 2 + 2 2 + ⋅ ⋅ ⋅ + 2 n = O ( 2 n ) 1 + 1 2 + 1 2 2 + ⋅ ⋅ ⋅ + 1 2 n = O ( 1 ) 1 + 2 2 + 3 2 + ⋅ ⋅ ⋅ + n 2 = O ( n 3 ) 1 + 1 2 + 1 3 + ⋅ ⋅ ⋅ + 1 n = O ( log n ) log 1 + log 2 + log 3 + ⋅ ⋅ ⋅ + log n = O ( n log n ) 1+2+2^2+···+2^n=O\left(2^n \right) \\ 1+\frac{1}{2}+\frac{1}{2^2}+···+\frac{1}{2^n}=O\left(1\right) \\ 1+2^2+3^2+···+n^2=O\left(n^3\right) \\ 1+\frac{1}{2}+\frac{1}{3}+···+\frac{1}{n}=O\left(\log n\right) \\ \log 1+\log2+\log3+···+\log n = O\left(n\log n \right) 1+2+22+⋅⋅⋅+2n=O(2n)1+21+221+⋅⋅⋅+2n1=O(1)1+22+32+⋅⋅⋅+n2=O(n3)1+21+31+⋅⋅⋅+n1=O(logn)log1+log2+log3+⋅⋅⋅+logn=O(nlogn)
例题:abc
例题:反序数
例题:对称平方数
例题:与7无关的数
2. 模拟
2.1 图形排版
2.2 日期问题
方法:日期A+天数=日期B
例题:今年的第几天?
例题:打印日期
例题:日期累加
例题:日期差值