题意:
给出了两个多项式的系数,求两个多项式相乘后问系数不能被 整除的幂的值
- 高斯引理:两个本原多项式的乘积仍为本原多项式.
- 本原多项式:满足所有系数的最大公因数为 的多项式
用
表示第一个多项式的
次方的系数
表示第二个多项式的
次方的系数
表示相乘后
次方的乘积后的系数
每个项都有
到
或
到
的一部分
找到一个找到不可被
整除的
,意思是
,即
,
我们找到第一个符合的,记为
和
。在此之前全部系数都可以被
整除,
当系数为
时,
此时只有
不可被
整除,其他的都可以。
所以一定有
。
给出的是本原多项式就是保证了不是所有系数数都能整除任何一个
,这样
序列都可以找到至少一个满足的下标。
AC代码:
int n, m, p;
int ans, res, x;
int main()
{
n = read();
m = read();
p = read();
ans = -1;
rep(i, 1, n)
{
x = read();
if (ans == -1 && x % p)
ans = i - 1;
}
res = -1;
rep(i, 1, m)
{
x = read();
if (res == -1 && x % p)
res = i - 1;
}
Out(ans + res);
return 0;
}