题意:给你一个n项多项式,与m项多项式,让他两个相乘得到一个新的多项式,让你输出任意一项系数可以被不可以被k整除的下标
题解:
n项多项式中最后一项系数不能被k整除的下标设为c1,m项多项式最后一项系数不能被k整除的下标设为c2,答案就是c1+c2.
为什么?
证明:
根据我们得到的c1,c2,我们可以发现,他们以后的下标一定是不能被k整除的,或是以后没有项
他们相乘结果也一定不能被k整除,他们的幂为c1 + c2
那么其他相乘项为c1 + c2的呢?
我们可以知道一定只有两种情况,我们设两项为p和q
符合条件的只有
p < c1 q > c2
p > c1 q < c2
由于他们大于的情况要不是后面没有项 不用考虑,要不是可以被k整除,所以这两项相乘一定是可以被k整除的,再加上c1*c2,幂为c1+c2的这项是一定无法被k整除的
#include<iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
int n,m,k;
int c1 = 0,c2 = 0;
cin >> n >> m>>k;
for(int i = 0;i < n;i++)
{
int x;
cin >> x;
if(x%k)
c1 = i;
}
for(int i = 0;i < m;i++)
{
int y;
cin >> y;
if(y%k)
c2 = i;
}
cout << c1+ c2;
}