题目链接:点击查看

题目大意:给出一个多项式F(x)每一项的系数为a[ i ],以及多项式G(x)每一项的系数为b[ i ],令H(x)=F(x)*G(x),现在问能否找到H(x)中的一个项,使得其系数不能整除题目给出的 p

题目分析:题目的条件中还有一个gcd==1,我感觉是为了误导人的就没有放上来,其实猜出结论之后实现起来很简单,但比赛的时候没有得出结论,这里只证明一下结论的正确性吧

首先,我们从头开始遍历数组 a 和数组 b ,找到第一项不能整除 p 的位置,分别记为 x 和 y ,那么这个题目的答案就是 x + y 了

因为a[ 0 ] ~ a[ x - 1 ]和b[ 0 ] ~ b[ y - 1 ]都是可以被 p 整除的,而能够组成 x + y 的系数,无非就是 a[ 0 ] * b[ x + y ] + a[ 1 ] * b[ x + y - 1 ] + a[ 2 ] * b[ x + y - 2 ] + ....+ a[ x + y - 1 ] * b[ 1 ] + a[ x + y ] * b[ 0 ],可以发现,上面的式子由 x + y + 1 项组成,前 x 项都包括了 a[ 0 ] ~ a[ x - 1 ],而后 y 项都包括了b[ 0 ] ~ b[ y - 1 ],换句话说,这些项相乘后仍然是 p 的倍数,自然也能被 p 整除,而只有最中间的 a[ x ] * b[ y ] 都无法整除 p 所以自然第 x + y 项无法整除 p 了

代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<climits>
#include<queue>
#include<map>
#include<set>
#include<sstream>
using namespace std;typedef long long LL;typedef unsigned long long ull;const int inf=0x3f3f3f3f;const int N=1e6+100;int a[N],b[N];int main()
{
#ifndef ONLINE_JUDGE
//  freopen("input.txt","r",stdin);
//  freopen("output.txt","w",stdout);
#endif
//  ios::sync_with_stdio(false);int n,m,p;scanf("%d%d%d",&n,&m,&p);for(int i=0;i<n;i++)scanf("%d",a+i);for(int i=0;i<m;i++)scanf("%d",b+i);int x=0,y=0;while(a[x]%p==0)x++;while(b[y]%p==0)y++;printf("%d\n",x+y);return 0;
}

CodeForces - 1316C Primitive Primes(构造+数论)相关推荐

  1. CodeCraft-20 (Div. 2) C. Primitive Primes 思维 + 数论

    传送门 文章目录 题意: 思路: 题意: 给你两个长度分别为n,mn,mn,m的多项式,将他们乘起来,问系数modp=0\bmod p =0modp=0的项的指数是多少,两个多项式所有项的系数gcd= ...

  2. Codeforces Round #174 (Div. 2) Cows and Primitive Roots(数论)

    Cows and Primitive Roots time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  3. Codeforces CodeCraft-20 (Div. 2) C. Primitive Primes

    链接:http://codeforces.com/contest/1316/problem/C 题意: 给出两个方程: f(x)=a0+a1x+a2x2+...+an−1xn−1g(x)=b0+b1x ...

  4. codeforces:D. Range = √Sum【构造 + 数论分析】

    目录 题目截图 题目分析 ac code 总结 题目截图 题目分析 # 假设a1-an从小到大 # 考虑固定a1和an,不妨令a1 = p,an = q # 我们希望答案是对称的,(p + q) / ...

  5. CodeForces - 287C Lucky Permutation(构造)

    题目链接:点击查看 题目大意:构造一个合法的排列,满足 ppi=n−i+1p_{p_{i}}=n-i+1ppi​​=n−i+1 题目分析:因为第四个样例的存在降低了本题的难度,不然感觉还是有点难度的一 ...

  6. CodeForces - 468C Hack it!(构造+数位dp)

    题目链接:点击查看 题目大意:求出一段区间 [l,r][l,r][l,r] 的数位和对 aaa 取模后为 000.更具体的,设 f(x)f(x)f(x) 为 xxx 的数位和,本题需要求出一对 [l, ...

  7. CodeForces - 1561E Bottom-Tier Reversals(构造)

    题目链接:点击查看 题目大意:给出一个长度为 nnn 的排列,每次操作可以选择一个奇数长度的前缀然后反转,需要构造一种方案,使得在不超过 5n2\frac{5n}{2}25n​ 次操作后使得序列有序 ...

  8. CodeForces - 1494E A-Z Graph(构造+思维)

    题目链接:https://vjudge.net/problem/CodeForces-1494E 题目大意:给出一个初始时只有 nnn 个点的有向带权图,需要执行 mmm 次操作,每次操作分为下列三种 ...

  9. CodeForces - 1494D Dogeforces(贪心+构造)

    题目链接:点击查看 题目大意:给出 nnn 个叶子结点和一个 n∗nn*nn∗n 的 LCALCALCA 矩阵,其中 LCALCALCA 表示的是最近公共祖先节点的权值,现在需要构造出一棵自顶向下权值 ...

最新文章

  1. java开发环境变量配置-JDK11-(win10),重启之后环境变量配置失效的解决办法
  2. 在matlab中可以计算式子的最大值吗,matlab求最大值
  3. RxSwift之UI控件UITableView扩展的使用
  4. 对象水平对齐,并且按照竖直方向排列
  5. 递归判断一个数是否递增
  6. HeadFirst之设计模式 觀察者模式
  7. java dvr_java实现海康NVR/DVR设备工作状态获取
  8. Apache 安全配置方法
  9. Flex Develpment中右边的框的linkWithEdit
  10. AutoCompleteTextView输入汉字拼音首字母实现过滤提示(支持多音字,Filterable的使用)...
  11. datatable的查询介绍
  12. 化解字符串不能超过8000的方法及交叉表的处理
  13. 植物大战僵尸修改办法
  14. LumaQQ.NET For Visual Studio 2005 代码下载
  15. Mac 更新环境变量
  16. 【读书笔记】《杜月笙全传》读书笔记
  17. Spring Boot框架入门到进阶教程(自学版)
  18. echarts系列-带图教你调整左右位置x轴样式网格虚线刻度居中双轴Y轴滚动上下移动文字旋转改分割线颜色部分字体改色折注混合,X轴的颜色,X轴字体颜色,调整柱子颜色,调整小图标图例的大小和位置,鼠标
  19. signal函数详细用法
  20. note8 android p,值得买的手机 篇一:2020年,红米note8pro使用评测

热门文章

  1. 数据库乐观锁如何实现幂等性?
  2. 使用Dockerfile构建SpringBoot应用镜像
  3. 类文件到虚拟机(类加载机制)
  4. 设计模式在Netty中的应用-装饰者模式源码举例
  5. FileSystemResource 和ClassPathResource 有何区别?
  6. 基于Redis优化首页轮播图查询
  7. 商品详情及规格参数的渲染
  8. 列表-列表统计及删除方法扩展
  9. Zuul:Cookie和动态路由
  10. SpringMVC中向服务器传输数据(解决get、post、delete、put请求乱码问题)