题目描述

给定一个数集 A,要求构造一个数集 B,满足:

• 对于 A 集合中任意的数 x,x 属于 B,即 A ⊆ B;

• 对于 B 集合中任意的数 a, b,(a + b) mod p 属于 B,其中 p 是一个给定的正整数。 求 B 的大小的最小值。

输入格式

第一行两个整数 n, p,其中 n 为 A 的大小。

第二行 n 个整数,表示数集 A 中的数,保证这些数都在 [0, p − 1] 内,保证这些数两两不 同。

输出格式

一个整数,表示答案。

样例

####样例输入

2 10
4 6

####样例输出

5



一道2分钟AC的gcd裸题。其实就是找满足k1*x1+k2*x2+...+kn*xn≡f(mod p)的f有多少个,然后可以直接算t=gcd(x1,x2,...,xn,p),所有t的倍数的f(f<p且f可以为0)都可以得到
//Serene
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=1e5+10;
int n,p,a[maxn]; int aa;char cc;
int read() {
aa=0;cc=getchar();
while(cc<'0'||cc>'9') cc=getchar();
while(cc>='0'&&cc<='9') aa=aa*10+cc-'0',cc=getchar();
return aa;
} int gcd(int x,int y) {
return y? gcd(y,x%y):x;
} int main() {
n=read();p=read();
for(int i=1;i<=n;++i) if(i>1)a[i]=gcd(a[i-1],read());else a[i]=read();
a[n]=gcd(a[n],p);
printf("%d",p/a[n]);
return 0;
}

  

 

最新文章

  1. float4与half4数据类型
  2. Generate transparent shape on image
  3. redis——持久化篇
  4. ACM: HDU 1028 Ignatius and the Princess III-DP
  5. NAS服务器局域网内IPad、手机、电视盒子等联网播放
  6. DNS报文格式
  7. FreeSWITCH第三方库(其他)的简单介绍(三)
  8. Java多线程-新特性-线程池
  9. 用C#编写游戏脚本
  10. Windows 7系统安装MySQL5.5.21图解
  11. NET Reflector 8 使用
  12. Flood-it!
  13. java中的equals()方法
  14. 解决R语言临时文件目录的问题(tempdir、tempfile)
  15. Hbase单机安装部署
  16. css写的常见图形
  17. 老司机告诉你高质量的Java代码是怎么练成的?
  18. 原生端与服务器通过sessionid实现session共享以及登录验证
  19. ftp sun jdk自带
  20. netty03(基于4.1.23.Final 版本的案例)

热门文章

  1. python-基础-字符串-列表-元祖-字典2
  2. hadooplinux服务连接window平台问题
  3. jqGrid 属性、事件全集
  4. springboot拦截器之验证登录
  5. Django项目:CRM(客户关系管理系统)--35--27PerfectCRM实现King_admin编辑复选框
  6. Django项目:CRM(客户关系管理系统)--27--19PerfectCRM实现King_admin数据修改
  7. Visual Studio 2019 正式发布
  8. loading遮罩
  9. webstorm之Monokai-Sublime主题颜色设置方法及激活注册码
  10. opencv4 java 验证码噪点 8邻域降噪