论 <解方程>

题面:
求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))

原文地址:https://www.cnblogs.com/tyqtyq/p/11159343.html