树莓 题解(全网最短(不用强压))
2024-08-13 14:33:12
发布于:广东
#include<bits/stdc++.h>
int m[1000005],a,n,k,f,mn,i,j;
int main(){
scanf("%d",&a);
for(int y=0;y<a;y++,f=0){
scanf("%d%d",&n,&k);
for(int i=0;i<n;i++){
scanf("%d",&m[i]);
if(m[i]%k==0)f=1;
if(k==4&&m[i]%2==0)k/=2,m[i]=-1;
}if(f==1||k==0)mn=0;
else if(k==2)mn=1;
else if(k==4)for(i=0,mn=2;i<n;i++)mn=std::min(abs(k-(m[i]%k)),mn);
else for(j=0,mn=10005;j<k;j++)for(i=0;i<n;i+=!m[i+1]+1)mn=std::min(abs(k-(m[i]%k)),mn);
printf("%d\n",mn);
}
}
17行拿下 看不懂吧,嘻嘻
树莓
全部评论 1
你好,x02的同学
2024-08-13 来自 广东
0
有帮助,赞一个