首页 > mex
头像 丨阿伟丨
发表于 2025-08-28 14:10:13
题目链接 小红的01串 题目描述 给定一个由 个非负整数组成的数组。一轮操作定义为:首先计算数组的 (未在数组中出现的最小非负整数),然后将数组中的每个数 更新为 。求至少需要多少轮操作才能使数组中的每个数都相同。如果不可能,则输出 -1。 解题思路 本题要求计算最少需要多少轮操作才能使数组中的 展开全文
头像 立花泷之介
发表于 2026-02-27 14:46:12
这道题目是一道典型的博弈/构造类贪心题,核心在于理解 mex(最小未出现的非负整数)对数组变化的实质影响。核心思路分析我们需要通过操作 ai = max(0, ai - mex)让数组中所有元素相等。情况 A:数组元素已经全部相同此时不需要任何操作,直接输出 0。情况 B:数组元素不全相同,且数组中 展开全文
头像 Night_crusing
发表于 2026-03-07 00:43:31
很有意思的一个题,想要高效的完成这个题目我们可以关注每一次操作的本质,对于比较特殊的例如 1 2 3 4 5 这种没有0的mex为0,不管多少次操作都是无效的 0 0 0 0 0 这种不需要操作就可以分析完了特殊的我们可以来看比较一般的情况,例如 0 2026 由于数组有0才能有有效的mex本 展开全文
头像 BraveCoder
发表于 2025-09-21 15:04:38
import java.util.*; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int n 展开全文
头像 rpcwx
发表于 2026-02-17 21:13:52
#include <iostream> using namespace std; #include<set> #include<algorithm> int main(){ set<long long>a; int n; ci 展开全文
头像 小海胆胆
发表于 2026-03-10 16:40:44
mex 思路 这道题乍一看像是模拟题——每轮算个 MEX,然后所有元素减掉它,直到全部相等。但直接模拟肯定超时,因为操作轮数可以达到 级别。关键在于找到规律,跳过大量重复操作。 什么时候无解? 如果数组里没有 0,那 MEX = 0,减 0 等于啥都没变。除非数组本身已经全部相等(直接输出 0), 展开全文
头像 ZYCwuque
发表于 2026-03-09 17:15:36
这题是思维题,需要自己去发现规律经过研究发现,对于排好序后的{0,p1,p2,p3}需要p3-(k-1)次,这是一般规律除此之外,我们还需特判两种情况,一种是原数组原本就是每个数都相同的还有一种就是原数组中没有0,mex只能取0,使得永远无法变化成相同的 import java.util.Arr 展开全文
头像 冷艳的西红柿刷牛客
发表于 2025-10-06 20:48:00
import java.util.Arrays; import java.util.Objects; import java.util.Random; import java.util.Scanner; /** * @author supermejane * @date 2025/10/6 展开全文
头像 牛客937992666号
发表于 2025-12-22 00:02:22
不断进行操作:,求所有相等的 最小操作次数 显然如果数组中没有0, 那么mex = 0, 导致, 所以似乎直接输出 -1 但是如果一开始所有的都相等的话,那么操作次数为0. 思路一:模拟即可 #include<bits/stdc++.h> using&n 展开全文