当前位置:网站首页>2022.8.9 Remainder of Exam Balance--1000 Question Solutions
2022.8.9 Remainder of Exam Balance--1000 Question Solutions
2022-08-10 03:20:00 【bj_hacker】
题目
1、Balanced remainder–1000
时间限制: | 空间限制:
题目描述:
给出一个正整数 ( 能被3整除)和一个大小为 的整数数组 .
在一次操作中,You can choose either one and let it increase1.You can do this multiple times on the same number
作.
The minimum number of steps required to request(可以是0次),使 中模3余 are equal in number.共 组测试数据.
输入格式:
第一行仅有一个正整数 ( ),表示测试数据的组数.
接下来有 组测试数据,There are two lines in each group:
The first line contains only one positive integer ( , 能被3整除,且所有测试数据中 之和不超过
),表示数组大小;
第二行有 个整数 ( )用空格隔开.
输出格式:
对于每组测试数据,输出一行一个整数,Indicates how many operations to use at least 符合条件.
思路
余数为0 1 2The conduction forms a ring,So you only need to judge the relationship with the average once,Conduction can.
代码实现
#include<bits/stdc++.h>
using namespace std;
int t,n,ans;
int cnt[3];
int main(){
scanf("%d",&t);
while(t--){
ans=0;
memset(cnt,0,sizeof(cnt));
scanf("%d",&n);
for(int i=1;i<=n;i++){
int a;
scanf("%d",&a);
cnt[a%3]++;
}
int op=n/3;
if(cnt[0]>op){
int s=cnt[0]-op;
ans+=s;
cnt[0]=n/3;
cnt[1]+=s;
}
else if(cnt[0]<op){
int s=op-cnt[0];
ans+=s;
cnt[2]-=s;
cnt[0]=n/3;
}
if(cnt[2]>op){
int s=cnt[2]-op;
ans+=s;
cnt[0]+=s;
cnt[2]=n/3;
}
else if(cnt[2]<op){
int s=op-cnt[2];
ans+=s;
cnt[2]=n/3;
cnt[1]-=s;
}
if(cnt[1]>op){
int s=cnt[1]-op;
ans+=s;
cnt[1]=n/3;
cnt[2]+=s;
}
else if(cnt[1]<op){
int s=op-cnt[1];
ans+=s;
cnt[1]=n/3;
cnt[0]-=s;
}
printf("%d\n",ans);
}
return 0;
}
边栏推荐
猜你喜欢
随机推荐
微透镜阵列的高级模拟
高压之下,必有懦夫
Algorithm and voice dialogue direction interview question bank
谷歌翻译器-谷歌翻译器软件批量自动翻译
Shell编程--awk
RESOURCE_EXHAUSTED: etcdserver: mvcc: database space exceeded
【QT】QT项目:自制Wireshark
Initial attempt at UI traversal
【内存管理概述 Objective-C语言】
Unity碰撞和触发
liunx PS1 设置
781. 森林中的兔子
官宣出自己的博客啦
数组(一)
小程序开发的报价为什么有差别?需要多少钱?
基于C51的中断控制
volatile 关键字(修饰符 volatile 告诉编译器,变量的值可能以程序未明确指定的方式被改变)
跨站请求伪造(CSRF)攻击是什么?如何防御?
【Kali安全渗透测试实践教程】第8章 Web渗透
T5:Text-toText Transfer Transformer









