C. Primitive Primes(数学)

Problem - 1316C - Codeforces

题意:给你一个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;
	
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值