链接:http://codeforces.com/contest/1316/problem/C
题意:
给出两个方程:
f(x)=a0+a1x+a2x2+...+an−1xn−1g(x)=b0+b1x+b2x2+...+bm−1xm−1f(x) = a_0+a_1x+a_2x^2+...+a_{n-1}x^{n-1} \\ g(x) = b_0+b_1x+b_2x^2+...+b_{m-1}x^{m-1}f(x)=a0​+a1​x+a2​x2+...+an−1​xn−1g(x)=b0​+b1​x+b2​x2+...+bm−1​xm−1

gcd(a0,a1,…,an−1)=gcd(b0,b1,…,bm−1)=1gcd(a_0, a_1, \dots, a_{n-1}) = gcd(b_0, b_1, \dots, b_{m-1}) = 1gcd(a0​,a1​,…,an−1​)=gcd(b0​,b1​,…,bm−1​)=1

h(x)=f(x)∗g(x)h(x) = f(x)*g(x)h(x)=f(x)∗g(x)
输出 h(x)h(x)h(x) 中系数不可被k整除的一项,任意一项即可。
例如:k=2k = 2k=2
f(x)=2x2+x+1g(x)=2x2+x+1h(x)=2x3+5x2+3x+2f(x) = 2x ^{2} + x + 1\\g(x) = 2x^2 + x + 1\\h(x) = 2x^3 + 5x^2 + 3x + 2f(x)=2x2+x+1g(x)=2x2+x+1h(x)=2x3+5x2+3x+2
h(x)h(x)h(x)的第一项和第二项的系数5,3都不可被 kkk 整除,故输出 1 2皆可

思路:
一开始直接上了一个FFT的模板,很不出意料的WA了。然后开始优化,改错 结束了也并没有写出来。
后来接触了一种解法,找到f,gf,gf,g的系数中 不可被 kkk 整除的最后一项假设为a,ba,ba,b,然后答案就是a+ba+ba+b。
后来我稍稍的证明了一下:
设 f,gf,gf,g 中,第a,ba,ba,b项的系数是ca,cbc_a,c_bca​,cb​
因为 ca,cbc_a,c_bca​,cb​ 是不被 kkk 整除的,所以ca∗cbc_a*c_bca​∗cb​肯定不会被 kkk 整除
同时如果 a,ba,ba,b 是系数不可被 kkk 整除的最后一项,那么a,ba,ba,b后面要么没有项数,要么该项的系数是可以被 kkk 整除的。*******************************(结论1)

在计算hhh,合并同阶时,跟第a,ba,ba,b项的乘积同阶p,qp,qp,q的乘积只用两种情况,

  1. p<aandq>bp<a \ and \ q>bp<a and q>b
  2. p>aandq<bp>a \ and \ q<bp>a and q<b

因为 (结论1) 可以知道p,qp,qp,q乘积的系数肯定能够被 kkk 整除,再加上a,ba,ba,b项的系数乘积那么,所得的最后乘积肯定是不会被 kkk 整除的。

#include<bitset>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>using namespace std;
int n,m,k,t,ans1,ans2;
int main(){scanf("%d %d %d",&n,&m,&k);for(int i = 0; i < n;++i){scanf("%d",&t);if(t%k) ans1 = i;}for(int i = 0; i < m;++i){scanf("%d",&t);if(t%k) ans2 = i;}printf("%d",ans1+ans2);return 0;}

Codeforces CodeCraft-20 (Div. 2) C. Primitive Primes相关推荐

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

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

  2. Codeforces Round #727 (Div. 2)2021.6.20

    Codeforces Round #727 (Div. 2) 闲话:打完省赛打cf,很不在状态地硬撑,wa和t了几次挺傻的地方,d题五分钟云出思路脑抽了调不出来.最后c还fst了.可以算的我拿去whi ...

  3. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  4. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  5. DFS Codeforces Round #299 (Div. 2) B. Tavas and SaDDas

    题目传送门 1 /* 2 DFS:按照长度来DFS,最后排序 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #includ ...

  6. 组合数学题 Codeforces Round #108 (Div. 2) C. Pocket Book

    题目传送门 1 /* 2 题意:每一次任选i,j行字符串进行任意长度前缀交换,然后不断重复这个过程,问在过程中,第一行字符串不同的个数 3 组合数学题:每一列不同的字母都有可能到第一行,所以每列的可能 ...

  7. 暴力+构造 Codeforces Round #283 (Div. 2) C. Removing Columns

    题目传送门 1 /* 2 题意:删除若干行,使得n行字符串成递增排序 3 暴力+构造:从前往后枚举列,当之前的顺序已经正确时,之后就不用考虑了,这样删列最小 4 */ 5 /************* ...

  8. 贪心 Codeforces Round #236 (Div. 2) A. Nuts

    题目传送门 1 /* 2 贪心:每一次选取最多的线段,最大能放置nuts,直到放完为止,很贪婪! 3 题目读不懂多读几遍:) 4 */ 5 #include <cstdio> 6 #inc ...

  9. 贪心 Codeforces Round #191 (Div. 2) A. Flipping Game

    题目传送门 1 /* 2 贪心:暴力贪心水水 3 */ 4 #include <cstdio> 5 #include <algorithm> 6 #include <cs ...

最新文章

  1. Android网络课程笔记-----定制通知系统
  2. 人工智能到底威胁人类还是造福人类?
  3. 页面升紧急级访问_部落冲突10-13本 发育规划丨升什么性价比最高?
  4. 【收藏】deepin环境安装nodejs
  5. Chrome OS 云里雾里
  6. Lombok 使用小结
  7. ASP.NET之JSONHelper操作
  8. Tricks(二十一)—— 随机数
  9. Enyim.Caching 客户端配置及示例
  10. Flink Weekly | 每周社区动态更新(附5月活跃榜单)
  11. HDFS中JAVA API的使用
  12. 自动化脚本任务计划程序(Windows)
  13. excel服务器表格显示不出来,excel表格内容显示不全的解决方案
  14. hexo博客之yilia主题的个性化设置
  15. 几个吓尿了的公众号,前几个你不可能没听过
  16. 用c#开发Android应用(一)——搭建开发环境
  17. 第五章:3ds max UV展开和BP贴图绘制(上)
  18. 今日说“法”:如何防止reg、wire型信号在使用逻辑分析仪时被优化
  19. 关于压电式雨量传感器技术相关问答的回复
  20. php判断关联数组为空,php 关联数组判断是否为空

热门文章

  1. 论文概述(KNN算法)
  2. 降低node版本,怎么降低node版本
  3. Cannot resolve com.xxx.xxx:xxx:x.x.x
  4. 校招面试 - 计算机网络 - (非)对称加密 - 安全传输的基础
  5. Linux进程3:父进程等待(wait,waitpid)子进程退出并收集子进程退出状态,僵尸进程
  6. Fre:又一个小而美的前端MVVM框架 1
  7. 通过路由器建立虚拟服务器
  8. bcompiler php,PHP bcompiler 函数
  9. PaaS概念遍地开花,Gartner教你分辨“泡沫”和“爆点”
  10. 多级反馈队列调度算法(转)