AtCoder Regular Contest 148 A - mod M
题面
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的更多相关文章
- AtCoder Regular Contest 096
AtCoder Regular Contest 096 C - Many Medians 题意: 有A,B两种匹萨和三种购买方案,买一个A,买一个B,买半个A和半个B,花费分别为a,b,c. 求买X个 ...
- Atcoder regular Contest 073(C - Sentou)
Atcoder regular Contest 073(C - Sentou) 传送门 每个人对开关的影响区间为a[i]--a[i]+t,因此此题即为将所有区间离散化后求所有独立区间的长度和 #inc ...
- Atcoder regular Contest 073(D - Simple Knapsack)
Atcoder regular Contest 073(D - Simple Knapsack) 传送门 因为 w1≤wi≤w1+3 这个特殊条件,我们可以将每个重量离散化一下,同时多开一维记录选择的 ...
- AtCoder Beginner Contest 148 题解
目录 AtCoder Beginner Contest 148 题解 前言 A - Round One 题意 做法 程序 B - Strings with the Same Length 题意 做法 ...
- AtCoder Regular Contest 061
AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...
- AtCoder Regular Contest 094 (ARC094) CDE题解
原文链接http://www.cnblogs.com/zhouzhendong/p/8735114.html $AtCoder\ Regular\ Contest\ 094(ARC094)\ CDE$ ...
- AtCoder Regular Contest 092
AtCoder Regular Contest 092 C - 2D Plane 2N Points 题意: 二维平面上给了\(2N\)个点,其中\(N\)个是\(A\)类点,\(N\)个是\(B\) ...
- AtCoder Regular Contest 093
AtCoder Regular Contest 093 C - Traveling Plan 题意: 给定n个点,求出删去i号点时,按顺序从起点到一号点走到n号点最后回到起点所走的路程是多少. \(n ...
- AtCoder Regular Contest 094
AtCoder Regular Contest 094 C - Same Integers 题意: 给定\(a,b,c\)三个数,可以进行两个操作:1.把一个数+2:2.把任意两个数+1.求最少需要几 ...
- AtCoder Regular Contest 095
AtCoder Regular Contest 095 C - Many Medians 题意: 给出n个数,求出去掉第i个数之后所有数的中位数,保证n是偶数. \(n\le 200000\) 分析: ...
随机推荐
- 关于TP5模板输出时间戳问题--A non well formed numeric value encountered
某日.因为一个项目.控制器我是这么写的 1 /** 2 * get admin/Picture/index 3 * 显示所有图册信息 4 * @return view 5 */ 6 public fu ...
- Audacity开源音频处理软件使用入门
操作系统 :Windows10_x64 Audacity版本:3.2.1 Audacity是一款开源.免费.跨平台的音频处理及录音软件,支持Windows.macOS及Linux操作系统. 这里记录下 ...
- 9.pygame-键盘捕获
创建英雄类 """英雄精灵""" class Hero(GameSprite): def __init__(self): # 调用父类方法, ...
- windows和虚拟机上的Ubuntu互传文件
1.简介 本文讲述的是通过ssh登录虚拟机上的Ubuntu系统,实现互传文件 2.Ubuntu端 2.1.安装ssh sudo apt-get update sudo apt-get install ...
- 多项式回归 & pipeline & 学习曲线 & 交叉验证
多项式回归就是数据的分布不满足线性关系,而是二次曲线或者更高维度的曲线.此时只能使用多项式回归来拟合曲线.比如如下数据,使用线性函数来拟合就明显不合适了. 接下来要做的就是升维,上面的真实函数是:$ ...
- python渗透测试入门——取代netcat
1.代码及代码讲解. 实验环境:windows10下的linux子系统+kali虚拟机 import argparse import socket import shlex import subpro ...
- 云原生之旅 - 7)部署Terrform基础设施代码的自动化利器 Atlantis
前言 前面有几篇文章讲述了如何使用Terraform创建资源 (基础设施即代码 Terraform 快速入门, 使用 Terraform 创建 Kubernetes) 以及 Kubernetes时代的 ...
- Atlas人工智能基础知识
目录 一. AI基本概念 1.人工智能是什么 2.人工智能.机器学习.深度学习的关系是什么 2.监督学习.无监督学习.半监督学习和强化学习是什么 3.什么是模型和网络 4.什么是训练和推理 5.什么 ...
- 视觉享受,兼顾人文观感和几何特征的字体「GitHub 热点速览 v.22.46」
GitHub 上开源的字体不在少数,但是支持汉字以及其他非英文语言的字体少之又少,记得上一个字体还是 霞鹜文楷,本周 B 站知名设计 UP 主开源了的得意黑体在人文观感和几何特征之间找到了美的平衡. ...
- 随笔——安卓手机调试微信网页,x5错误页
如果打开debugx5.qq.com提示您使用的不是x5内核 那么先打开debugmm.qq.com/?forcex5=true 再打开http://debugtbs.qq.com 将进入下面这个页面 ...