当前位置: 首页 > news >正文

Make All Equal

给定一个循环数组 a1,a2,…,ana1​,a2​,…,an​。

你可以对 aa 至多执行 n−1n−1 次以下操作:

  • 设 mm 为 aa 的当前大小,你可以选择任何两个相邻的元素,其中前一个不大于后一个(特别地,amam​ 和 a1a1​ 是相邻的,amam​ 是前一个),并删除其中的一个。换句话说,选择一个整数 ii (1≤i≤m1≤i≤m) 使得 ai≤a(imodm)+1ai​≤a(imodm)+1​ 成立,然后从 aa 中删除 aiai​ 或 a(imodm)+1a(imodm)+1​ 之一。

你的目标是找到使得 aa 中所有元素相等所需的最小操作次数。

输入

每个测试包含多个测试用例。第一行包含测试用例的数量 tt (1≤t≤5001≤t≤500)。接下来是测试用例的描述。

每个测试用例的第一行包含一个整数 nn (1≤n≤1001≤n≤100) — 数组 aa 的长度。

每个测试用例的第二行包含 nn 个整数 a1,a2,…,ana1​,a2​,…,an​ (1≤ai≤n1≤ai​≤n) — 数组 aa 的元素。

输出

对于每个测试用例,输出一行包含一个整数:使得 aa 中所有元素相等所需的最小操作次数。

示例

InputcopyOutputcopy
7
1
1
3
1 2 3
3
1 2 2
5
5 4 3 2 1
6
1 1 2 2 3 3
8
8 7 6 3 8 7 6 3
6
1 1 4 5 1 4
0
2
1
4
4
6
3

注意

在第一个测试用例中,aa 中只有一个元素,因此我们无法进行任何操作。

在第二个测试用例中,我们可以执行以下操作使得 aa 中所有元素相等:

  • 选择 i=2i=2,删除 a3a3​,然后 aa 将变为 [1,2][1,2]。
  • 选择 i=1i=1,删除 a1a1​,然后 aa 将变为 [2][2]。

可以证明,我们无法使用少于 22 次操作使得 aa 中所有元素相等,因此答案是 22。

//找规律,总数减去最多相等数的个数
#include<bits/stdc++.h>
using namespace std;
map<int,int>mapp;
int main(){int t;cin>>t;while(t--){mapp.clear();int n,maxn=-1;cin>>n;int h=n;while(h--){int k;cin>>k;mapp[k]++;maxn=max(mapp[k],maxn);}cout<<n-maxn<<endl;}
} 

 

http://www.xdnf.cn/news/791335.html

相关文章:

  • 2.2.2 06年T3
  • LeetCode 152. 乘积最大子数组 - 动态规划解法详解
  • 集成学习三种框架
  • C++中的指针参数传递与引用参数传递详解
  • 5985/wsman 是什么?
  • 一、基础环境配置
  • Linux中实现用户态DMA直通访问的零拷贝机制
  • 《Spring Bean 是怎么被创建出来的?容器启动流程全景分析》
  • 小体积涵盖日常办公等多功能的软件
  • MyBatis实战项目测试
  • 2025.6.3学习日记 Nginx 基本概念 配置 指令 文件
  • React-native之Flexbox
  • nginx 如何禁用tls1.0
  • CSS radial-gradient函数详解
  • JVM-内存结构
  • MAU算法流程理解
  • VueUse:组合式API实用函数全集
  • ADI硬件笔试面试题型解析上
  • DevEco Studio的使用
  • VUE组件库开发 八股
  • 时态--10--被动语态
  • Selenium 中 JavaScript 点击操作的原理及应用
  • Java:跨越时代的编程语言,持续引领技术革新
  • IPython 使用技巧整理
  • 强化学习鱼书(10)——更多深度强化学习的算法
  • Spring AI 项目实战(一):Spring AI 核心模块入门
  • 【Linux】Linux 进程基础
  • 华为港城 RAG 推理训练新突破:过程监督助力 5k 样本性能超越 90k 模型
  • 神经符号集成-三篇综述
  • COMSOL多边形骨料堆积混凝土水化热传热模拟