题面

You are given a sequence \(A = (A_1, A_2, ..., A_N)\).

You may perform the following operation exactly once.

Choose an integer \(M\) at least \(2\). Then, for every integer \(i\) (\(1 \leq i \leq N\)), replace \(A_i\) with the remainder when \(A_i\) is divided by \(M\).

For instance, if \(M = 4\) is chosen when \(A = (2, 7, 4)\), \(A\) becomes \((2 \bmod 4, 7 \bmod 4, 4 \bmod 4) = (2, 3, 0)\).

Find the minimum possible number of different elements in \(A\) after the operation.

Constraints

  • \(2 \leq N \leq 2 \times 10^5\)
  • \(0 \leq A_i \leq 10^9\)
  • All values in the input are integers.

简要题意

给出一个长度为 \(N\) 的序列 \(A\),你需要找到一个整数 \(M(M \geq 2)\),使得所有 \(A_i \bmod m\) 的值种数最小,输出种数。

如 \(A=[1,4,8]\),则可以取 \(M=2\),\(A_1 \bmod M=1,A_2 \bmod M=0,A_3 \bmod M=0\),共 \(2\) 种,这是最优的。

\(2 \leq N \leq 2 \times 10^5,0 \leq A_i \leq 10^9\)

思路

这道题答案只可能是 \(1\) 或 \(2\)。因为如果答案大于 \(2\),我们可以取 \(M=2\) 这样种数最多是 \(2\)。

先排序。

不难发现,答案为 \(1\) 则代表存在 \(M\),使得 \(A_1 \equiv A_2 \equiv \cdots \equiv A_{n-1} \equiv A_n \pmod{M}\),根据同余定义可知 \(A_2-A_1 \mid A_3-A_2 \mid \cdots A_{n-1}-A_{n-2} \mid A_n-A_{n-1}\), 可以推出 \(\gcd\limits_{i=2}^{n}{(A_i-A_{i-1})}=m\)。

所以如果 \(\gcd\limits_{i=2}^{n}{(A_i-A_{i-1})} \gt 1\),答案是 \(1\),否则是 \(2\)。

代码

#include <bits/stdc++.h>
#define int long long
using namespace std; int n;
int a[1000005];
int rrr; signed main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
sort(a+1,a+n+1);
rrr=a[2]-a[1];
for(int i=3;i<=n;i++){
rrr=__gcd(rrr,a[i]-a[i-1]);
}
if(rrr!=1){
cout<<1;
}
else{
cout<<2;
}
return 0;
}

AtCoder Regular Contest 148 A - mod M的更多相关文章

  1. AtCoder Regular Contest 096

    AtCoder Regular Contest 096 C - Many Medians 题意: 有A,B两种匹萨和三种购买方案,买一个A,买一个B,买半个A和半个B,花费分别为a,b,c. 求买X个 ...

  2. Atcoder regular Contest 073(C - Sentou)

    Atcoder regular Contest 073(C - Sentou) 传送门 每个人对开关的影响区间为a[i]--a[i]+t,因此此题即为将所有区间离散化后求所有独立区间的长度和 #inc ...

  3. Atcoder regular Contest 073(D - Simple Knapsack)

    Atcoder regular Contest 073(D - Simple Knapsack) 传送门 因为 w1≤wi≤w1+3 这个特殊条件,我们可以将每个重量离散化一下,同时多开一维记录选择的 ...

  4. AtCoder Beginner Contest 148 题解

    目录 AtCoder Beginner Contest 148 题解 前言 A - Round One 题意 做法 程序 B - Strings with the Same Length 题意 做法 ...

  5. AtCoder Regular Contest 061

    AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...

  6. AtCoder Regular Contest 094 (ARC094) CDE题解

    原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...

  7. AtCoder Regular Contest 092

    AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了\(2N\)个点,其中\(N\)个是\(A\)类点,\(N\)个是\(B\) ...

  8. AtCoder Regular Contest 093

    AtCoder Regular Contest 093 C - Traveling Plan 题意: 给定n个点,求出删去i号点时,按顺序从起点到一号点走到n号点最后回到起点所走的路程是多少. \(n ...

  9. AtCoder Regular Contest 094

    AtCoder Regular Contest 094 C - Same Integers 题意: 给定\(a,b,c\)三个数,可以进行两个操作:1.把一个数+2:2.把任意两个数+1.求最少需要几 ...

  10. AtCoder Regular Contest 095

    AtCoder Regular Contest 095 C - Many Medians 题意: 给出n个数,求出去掉第i个数之后所有数的中位数,保证n是偶数. \(n\le 200000\) 分析: ...

随机推荐

  1. JUC(5)BlockingQueue四组API

    1.读写锁ReadWriteLock package com.readlock; import java.util.HashMap; import java.util.Map; /** * ReadW ...

  2. 一次 Redis 事务使用不当引发的生产事故

    这是悟空的第 170 篇原创文章 官网:http://www.passjava.cn 你好,我是悟空. 本文主要内容如下: 一.前言 最近项目的生产环境遇到一个奇怪的问题: 现象:每天早上客服人员在后 ...

  3. springMVC必要jar包

    spring-aop-4.3.2.RELEASE.jar :: 包含在应用中使用Spring 的AOP 特性时所需的类和源码级元数据支持. spring-beans-4.3.2.RELEASE.jar ...

  4. 【神经网络】丢弃法(dropout)

    丢弃法是一种降低过拟合的方法,具体过程是在神经网络传播的过程中,随机"沉默"一些节点.这个行为让模型过度贴合训练集的难度更高. 添加丢弃层后,训练速度明显上升,在同样的轮数下测试集 ...

  5. 部署redis-cluster

    1.环境准备 ☆ 每个Redis 节点采用相同的相同的Redis版本.相同的密码.硬件配置 ☆ 所有Redis服务器必须没有任何数据 #所有主从节点执行: [root@ubuntu2004 ~]#ba ...

  6. OpenHarmony移植案例: build lite源码分析之hb命令__entry__.py

    摘要:本文介绍了build lite 轻量级编译构建系统hb命令的源码,主要分析了_\entry__.py文件. 本文分享自华为云社区<移植案例与原理 - build lite源码分析 之 hb ...

  7. .Net6新版本的AssemblyLoadContext 加载程序集和卸载程序集

    准备俩个项目 第一个是控制台 第二个项目是类库 类库项目中只有一个示例class 将类库的代码生成dll 并且设置属性为复制到输出目录 using System.Runtime.Loader; var ...

  8. 备考CISP-PTE之文件上传

    upload-labs 直接下载放到phpstudy打开即可. 第一关 查看源码,可以看到js代码定义了一个checkFile函数来对上传的文件进行后缀检查,只允许上传jpg.png.gif文件. f ...

  9. Nginx如何配置隐藏index.php文件

    server { listen 80; #listen [::]:80 default_server ipv6only=on; server_name jiqing.dexin.com; index ...

  10. Kubernetes_从零开始搭建k8s集群(亲测可用)

    一.前言 本文讲述从零开始搭建k8s集群,均使用国内镜像,版本均统一,使用两个虚拟机,一个主节点,一个从节点,保证k8s一次搭建成功. 注意:Kubernetes,简称K8s,是用8代替名字中间的8个 ...