1 条题解

  • 0
    @ 2025-8-24 23:06:47

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar ikunTLE
    互关条件见主页(luogu.me/paste/1ij66blw),关注我可以获得我小号 OIerDb 的关注(需私信) || 最后在线时间:2025年8月24日22时50分

    搬运于2025-08-24 23:06:47,当前版本为作者最后更新于2024-12-01 19:08:39,作者可能在搬运后再次修改,您可在原文处查看最新版

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

    以下是正文


    题目传送门

    思路

    为了使其操作次数最少,应该把所有的小朋友的糖果数都增加为糖果最多的小朋友的糖果数。设 mm 为序列 aa 中的最大值。若 (mai)modk0(m-a_i)\bmod k\ne 0,则无论怎么添加糖果都无法使所有的糖果数相等;否则统计 maik\frac{m-a_i}{k} 的总和。

    注意事项

    • 不开 long long 见祖宗。

    AC CODE

    #include<bits/stdc++.h>
    using namespace std;
    #define int long long
    int read(){int x=0;char f=1,ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();return x*f;}
    const int N=1e5+10;
    int a[N];
    signed main(){
    	int n=read(),k=read(),m=0;
    	for(int i=1;i<=n;++i){
    		a[i]=read();
    		m=max(m,a[i]);
    	}
    	int ans=0;
    	for(int i=1;i<=n;++i)
    		if((m-a[i])%k)
    			return printf("NO\n"),0;
    		else ans+=(m-a[i])/k;
    	printf("YES %lld\n",ans);
    	return 0;
    }
    • 1

    信息

    ID
    9916
    时间
    1000ms
    内存
    512MiB
    难度
    1
    标签
    递交数
    0
    已通过
    0
    上传者