1 条题解

  • 0
    @ 2025-8-24 21:15:21

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar fish_shit
    我是鱼屎教皇!!!

    搬运于2025-08-24 21:15:20,当前版本为作者最后更新于2023-08-24 17:01:45,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    对于这道题,我们先判断无解的情况

    11:输入的 cic_i 小于等于 xx。因为 yyaia_i 都为正整数,也就是说它们一定大于 00。所以 cic_i 一定大于等于 x+1x + 1,也就是大于 xx

    22cc 序列中相邻的元素的差不能被 xx 整除。为了满足 aix+y=cia_ix+y=c_icc 序列中的所有元素一定是模 xx 的同余类。

    除了无解的情况,我们只需输出 cc 序列中最小的元素减去 xx 就行了。

    注意:一定要开 long long!

    最后,附上代码:

    #include<bits/stdc++.h>
    using namespace std;
    long long c[100100];
    int main(){
    	long long n,x;
    	cin>>n>>x;
    	long long minn=1e18+100;
    	for(int i=1;i<=n;i++){
    		cin>>c[i];
    		if(c[i]<=x){//第一种无解情况
    			cout<<"-1";
    			return 0;
    		}
    		if(i>=2){
    			if((c[i]-c[i-1])%x!=0){//第二种无解情况
    				cout<<"-1";
    				return 0;
    			}
    		}
    		if(c[i]<minn){//取最小值
    			minn=c[i];
    		}
    	}
    	cout<<minn-x;//输出
    	return 0;
    }
    

    望管理员大大通过!

    • 1

    信息

    ID
    8842
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    0
    已通过
    0
    上传者