题面

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. 驱动开发:内核枚举LoadImage映像回调

    在笔者之前的文章<驱动开发:内核特征码搜索函数封装>中我们封装实现了特征码定位功能,本章将继续使用该功能,本次我们需要枚举内核LoadImage映像回调,在Win64环境下我们可以设置一个 ...

  2. Windows10 + Eclipse C/C++开发环境配置极简教程

    下载安装Eclipse 访问下载Eclipse IDE for C/C++ Developers https://www.eclipse.org/downloads/packages/ 将下载下来的压 ...

  3. 10.-ORM-基础字段及选项

    一.ORM-基础字段及选项 任何关于表结构的修改,务必在对应模型类上修改 例如 给 books_book表添加一个info字段 varchar(100) 1.在模型中添加对应的类属性 2.执行数据库迁 ...

  4. 鹅长微服务发现与治理巨作PolarisMesh实践-上

    @ 目录 概述 定义 核心功能 组件和生态 特色亮点 解决哪些问题 官方性能数据 架构原理 资源模型 服务治理 基本原理 服务注册 服务发现 安装 部署架构 集群安装 SpringCloud应用接入 ...

  5. Workflow,要不要了解一下

    摘要:Workflow本质是开发者基于实际业务场景开发用于部署模型或应用的流水线工具. Workflow(也称工作流,下文中均可使用工作流进行描述)本质是开发者基于实际业务场景开发用于部署模型或应用的 ...

  6. Oracle数据库允许最大连接数

    1.查看当前的数据库连接数 SQL> select count(*) from v$process ; 2.数据库允许的最大连接数 SQL> select value from v$par ...

  7. LoadRunner11使用代理录制脚本

    一.背景 电脑安装了LoadRunner11,在进行脚本录制时发现录制的脚本为空,即录制时事件为0,也没有自动调出对应的浏览器:如下图: 问了度娘,发现LR11要成功录制脚本,对各浏览器的版本有要求! ...

  8. 从0到1搭建redis6.0.7续更~

    "心有所向,日复一日,必有精进" 前言: 想必大家看完我之前写的搭建redis服务器,大家都已经把redis搭建起来了吧如果没有搭建起来的小可爱请移步这里哦从0到1搭建redis6 ...

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

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

  10. layui的table数据匹配问题

    <script> layui.use('table', function () { var table = layui.table; //第一个实例 table.render({ elem ...