论 <解方程>
题面:
求n次整系数方程\(\sum_{i=1}^{n} a_ix^i = 0\)在区间\([1,m]\)上的整数解
解法:
1.暴力
O(NM) 暴力枚举+解方程
2.假设只要求一个解
瞎搞做法
引入参数T,选取T的整数倍作为标志点,在两个标志点间用勘根
时间复杂度O(\frac{T}{M} \time T) , 取\(T = \sqrt{M}\)时最优
3.假设\(a_i\)很小
由整数方程解的性质,设该解为\(\frac{p}{q}\),可得
- \(q|a_1\)
- \(p|a_n\)
- \(q|p\)
做法1: 枚举\(a_i\)的所有因子
做法2: 只用枚举a_1,a_n共有的所有质因子,降为\(O(log a_1)\)
那么总时间复杂度\(O(nloga_1+n)=O(nloga_1)\)