E. MEX and Increments
E. MEX and Increments
链接
题意:数组每一个数都可以加任意次数的1 求当前数组中缺失为i(0<=i<=n)的操作个数
思路:
每一个i 都是构成前面的操作次数加上将当前值有的个数
如果当前值的个数为0 操作次数为 构成前面序列的操作个数 操作个数要加上前面最大可变的差值去构成当前的值的序列
如果当前值的个数不为0 操作个数为构成前面的操作个数+当前值的个数
代码:
#include <bits/stdc++.h>
using namespace std;const int N = 2e5 + 10 ;
int all[N] ;
typedef pair<int ,int> PII ;int main(){int t;cin >>t ;while(t -- ) {int n ;cin>>n;map<long long, long long> p ;for(int i = 0 ; i < n; i ++ ) cin>>all[i] , p[all[i]] ++ ; long long sum = 0 , ch = 0 ; if(!p[0]) {cout<<"0 " ; for(int i = 1 ; i <= n ; i ++ ) {cout<<-1 <<" " ;} cout<<endl;continue ; }int ok = 1 ; cout<<p[0] <<" " ;p[0] -- ; priority_queue<PII> q;if(p[0] != 0) q.push({0 , p[0]}) ; for(int i = 1 ; i <= n;i ++ ) {if(ok == 0) cout<<"-1 " ; else if(p[i] == 0 ) {cout<< ch <<" " ; if(q.size() != 0 ){auto t = q.top() ;q.pop();long long x = t.first , y =t.second; ch += i - x ; y -- ; if(y != 0 ) {q.push({x , y }) ; }}else {ok = 0 ;}}else {cout<<ch + p[i] <<" " ;p[i] -- ;if(p[i]){q.push({i , p[i]}) ; } }} cout <<endl;} return 0 ;
}
E. MEX and Increments相关推荐
- MEX and Increments
MEX and Increments 题面翻译 给你一个数列,每次可以花费 111 代价将其中一个数加一.从 000 到 nnn 分别输出至少要花费多少才能使这个数是数列中没有出现的最小的非负整数. ...
- #762 (Div. 3) E. MEX and Increments(贪心构造
E. MEX and Increments 题意: 思路: 贪心加模拟 code: #include<bits/stdc++.h> #define endl '\n' #define ll ...
- codeforces:E. MEX and Increments【贪心 + 略加优化】
分析 mex(a) 表示不在a中的最小非负整数 ans[i] 表示最少的操作数使得mex(a) = i 我们用个counter记录一下原始每个位置出现的次数 我们的思路很简单:找出缺口,然后把多余的平 ...
- Codeforces Round #762 (Div. 3)
E. MEX and Increments F. Let's Play the Hat? G. Unusual Minesweeper H. Permutation and Queries 用个优先 ...
- outlook安全模式修复_Outlook Com安全漏洞Microsoft无法修复
outlook安全模式修复 Microsoft is one of the biggest tech companies in the world, and yet their online emai ...
- BZOJ 3585: mex( 离线 + 线段树 )
离线, 询问排序. 先处理出1~i的答案, 这样可以回答左端点为1的询问.完成后就用seq(1)将1到它下一次出现的位置前更新. 不断这样转移就OK了 ------------------------ ...
- 构造 ---- 最小没出现过的数(逆向构造) D. Replace by MEX
题目链接 题目大意: 给你一个aaa序列长度为nnn,每次挑选一个位置pos∈[1,n]pos\in[1,n]pos∈[1,n],把apos=MEX(a)a_{pos}=MEX(a)apos=MEX ...
- [模板] 区间mex 区间元素种数
区间mex 问题 给定序列\({a_i}\), 每次询问给出\(l\), \(r\), 询问 \(\text{mex} \{a_i\}, i \in \{l, l+1, \cdots r\}\) 解法 ...
- 使用matlab进行mex编译时的路径问题mexopts
matlab和vs 进行混合编程时总须要使用matlab编译mexFunction.cpp文件. 这些文件免不了使用include下的*.h和lib下的*.lib文件.举例说明.这次我的cpp中用到了 ...
最新文章
- 数据通信技术(十一:无中继的DHCP配置(ZTE))
- 我的网站搭建: (第一天) 模型设计
- python continue语句的用法(跳过本次循环,不是跳出整个循环,break才是跳出整个循环)
- 【Python】原创 | 写一个符合人类思维的四舍五入函数(No round !!!)
- self-在类的外部给对象增加属性
- 模拟银行自助终端系统
- sql 以a开头的所有记录_SQL开发与数据库管理笔记
- Virtualbox虚拟机Linux Guest的Additions安装方法
- SpringCloud系列十三:Feign对继承、压缩、日志的支持以及构造多参数请求
- [AutoSAR] BSW模块的ECUAL 抽象层
- html5网上商城模板代码,商城 HTML5模板
- (附源码)ssm心理咨询服务平台 毕业设计 324615
- 快速抢占Shopee墨西哥广告蓝海,Shopee广告投放策略分享
- 2021年中国影院行业发展现状:院线影院规模集中度持续增强,票房前五名排名保持稳固[图]
- android右上、右下、左上、左下手势滑动判断
- 联想用u盘重装系统步骤_详解联想如何使用u盘重装win10系统
- FANUC机器人PNS自动运行方式详细介绍
- 系统跨域:jsonp ; httpClient ;
- Prometheus(三)Grafana部署及部署告警
- redis实现接口幂等性
热门文章
- 前端开发中的地理定位问题小总结
- iPhone预计移除SIM卡槽,用户需通过eSIM激活网络
- x265-1.8版本-common/wavefront.h注释
- ONSPlayer玩RPGMV没声音的解决方法
- 网易AI入选2018年杭州案例
- 研读 项目名-LinkMap-normal-x86_64.txt
- Android深度探索--HAL与驱动开发----第五章读书笔记
- 项目实战:动态系统的设计(类似朋友圈)
- kubeadm安装的k8s集群证书有效期过期解决方案
- 华为 AI 芯片诞生;马云重当中国首富;微软修复数据删除 Bug | 极客头条