题面:
求n次整系数方程(sum_{i=1}^{n} a_ix^i = 0)在区间([1,m])上的整数解
解法:
1.暴力
O(NM) 暴力枚举+解方程
2.假设只要求一个解
瞎搞做法
引入参数T,选取T的整数倍作为标志点,在两个标志点间用勘根
时间复杂度O(frac{T}{M} ime 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))