当前位置:网站首页>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;
}
边栏推荐
猜你喜欢
随机推荐
GDB之指令基础参数
【二叉树-中等】1104. 二叉树寻路
Redis - String|Hash|List|Set|Zset数据类型的基本操作和使用场景
Screen 拆分屏幕
2022年8月8日-2022年8月15日,ue4视频教程+插件源码()
论旅行之收获
如何让数据库中的数据同步
HRnet
what is eabi
Database management tool: dynamic read-write separation
常用正则备查
官宣出自己的博客啦
LeetCode 每日一题——1413. 逐步求和得到正数的最小值
用于X射线光学器件的哈特曼波前传感器
高并发+海量数据下如何实现系统解耦?【下】
元素的盒子模型+标签的尺寸大小和偏移量+获取页面滚动距离
2022年立下的flag完成情况
微透镜阵列后光传播的研究
【二叉树-困难】124. 二叉树中的最大路径和
2020.11.22考试哥德巴赫猜想题解