U-MEX and Increments

news/2025/3/4 15:31:27/

在这里插入图片描述

题意

给你个数列,让你求对应下标i使得整个数列MEX(i)的最小步数,其中MEX(i)是指出现的最小正整数.

题解:

首先计数把每个数字出现的次数记录,对于下标i,我们需要让0-i-1的数至少出现一次,然后让数字i全体加1,这里用动态规划的思想,假设dp[i]是使得数列出现0-i每个至少一个的最小步数 那么 ans[i+1]=dp[i]+cnt[i+1],此时满足0-i至少出现一次,且所有等于i+1的值都被加1,MEX就位i+1,对于dp的转移来说,dp[i+1]=dp[i]+(i+1- 数组中最接近i+1的一个数字),这里可以用优先队列处理,事实上我们会发现数一定是从小到大所以用栈也是可以处理的。具体的做法是,转移后,将i都推入优先队列或栈中,作为最接近i+1的一个备选答案,如果栈空说明个数不够,输出-1,随后所有数都不可能成立。更进一步的,发现dp只会用到上一个状态,那用一个变量记录即可。

#include<bits/stdc++.h>
using namespace std;
long long cnt[200005];
void slove()
{int n;cin>> n;for (int i = 0; i <=n; i++)cnt[i] = 0;for (int i = 0; i < n; i++){int t;cin >> t;cnt[t]++;}long long s = 0;//s代表dp[i-1];priority_queue<long long>q;for (int i = 0; i <= n; i++){printf("%lld ", max((long long)-1, s + cnt[i]));//输出ans[i]=dp[i-1]+cnt[i]while (cnt[i]--)q.push(i);//这些数可以作为后续转移答案if (!q.empty()){s += i - q.top();//dp[i]=dp[i-1]+(i- 数组中最接近i的一个数字)q.pop();//该数已被占用,不可重复使用。}else s = -1e18;}puts("");
}
int main()
{int t;cin >> t;while(t--)slove();
}

http://www.ppmy.cn/news/464686.html

相关文章

UMT

UMT 链接: 数据集 提取码: 6cgu 1.一 论文导读2.二 论文精读3.三 代码实现4.四 问题思索 《Phrase-Based & Neural Unsupervised Machine Translation》 —基于短语和神经网络的无监督机器翻译 作者&#xff1a;Guillaume Lample 单位&#xff1a;Facebook AI Research 发…

ME-11

English中文含义(TTX)Table Top Exercise桌面推演(CPX)command post exercises指挥所演习(CTX)combined training exercises多国合成训练演习(CALFEX)combined arms live fire exercises多兵种联合实装演习(FTX)field training exercises野战训练演习(FCX)fire coordination ex…

meteor简介

简介 对于开发者而言&#xff0c;meteor相比于其他框架&#xff0c;更注重业务逻辑的编写&#xff0c;开发者不必再将关注点集中在如何CRUD数据、如何在页面与程序之间传递数据的具体操作及代码实现上&#xff0c;因为meteor已经为我们分装好了&#xff0c;提供了简洁的API。m…

meteor

开发工具&#xff1a; sublintext Robomongo webStroe meteor网址&#xff1a; http://www.meteor.com 部分视屏网址 http://www.maiziedu.com http://v.youku.com/v_show/id_XOTA5Mzc0NTQ0.html?f23545469 查看meteor版本 meteor --version 查看meteor的系统自带demo并…

MateQ

java客户端接入 <dependency><groupId>com.taobao.metaq.final</groupId><artifactId>metaq-client</artifactId><version>4.2.6.Final</version> </dependency>发布消息 日常环境不需要申请即可发送&#xff0c;Topic与Prod…

kata kata pacar php,Membantu

Membantu (2010-02-03 18:57:20) 标签&#xff1a; 杂谈 Lebih dari tiga tahun yang lalu&#xff0c;Saya telah mengenal etnis Cina di Indonesia Surabaya Sonny&#xff0c;Jatuh cinta dengan dia。Setiap hari ia tidak kembali ke rumahnya sendiri&#xff0c;Oleh k…

什么是UTM?

UTM是“统一威胁管理(Unified Threat Management)”的意思,一个来自国外的概念,也指一类网络安全设备。本质上,UTM是多功能安全网关,与路由器和三层交换机不同的是,UTM不仅可以连接不同的网段,还在数据通信过程中提供了丰富的安全功能,例如访问控制、、***防御、病毒过…

Prometheus-Metrics

Metrics Prometheus存在多种不同的监控指标Metrics&#xff0c;在不同的场景下应该要选择不同的Metrics。 1.Counter&#xff1a;只增不减的计数器 Counter类型的指标其工作方式和计数器一样&#xff0c;只增不减&#xff08;除非系统发生重置&#xff09;。常见的监控指标&…