题意:给1e5的数组a 保证 ai <= ai+1  ai<=i

   求一个一样长的数组b 使得mex(b1,b2···bi) = ai

QAQ:不知道为啥这1600分的题比赛时出不了 啊啊啊啊啊啊啊啊

题解:其实比赛的时候 就知道当前bi填的数字肯定是0,1,2...a[i] - 1中第一个没出现的数字

   如果已经被填满了 就在a[i] + 1...a[n]-1中填第一个后面没出现的数字

   因为显然有一个限制 你当前填的数字 不能等于后面的某一个a[i]

   比赛的时候一直想一些奇奇怪怪的实现方法.. 越整越麻烦

   显然bi要填满的数字就是0-a[n]-1

   把数字分成两组 一组是a[i]中出现的 一组是没出现的 分别维护指针

   如果a[i] > 第一组的数字 就填第二组的 ... 都填完了就选inf

   填完再判断一下合法性

#include <stdio.h>
#include <iostream>
#include <algorithm>
#include <cmath>
#include <string.h>
#include <queue>
using namespace std;
typedef long long ll;
const ll mod = 1e9 + 7;
const int MAXN = 1e5 + 5; int val[100015];
int a[MAXN];
int b[MAXN];
int c[MAXN];
int d[MAXN];
int main() {
int cn1 = 0, cn2 = 0;
int n;
cin>>n;
for(int i = 1; i <= n; i++) scanf("%d", &a[i]), val[a[i]]++; for(int i = 0; i < a[n]; i++)
if(!val[i]) d[++cn2] = i;
else c[++cn1] = i; int nl = 1, nr = 1;
for(int i = 1; i <= n; i++) {
if(nl <= cn1 && a[i] > c[nl]) b[i] = c[nl++];
else if(nr <= cn2) b[i] = d[nr++];
else b[i] = n + 5;
} memset(val, 0, sizeof(val));
int now = -1;
for(int i = 1; i <= n; i++) {
val[b[i]] = 1;
while(val[now + 1]) now += 1;
if(now + 1 != a[i]) {
puts("-1");
return 0;
}
}
for(int i = 1; i <= n; i++) printf("%d ", b[i]); puts("");
return 0;
}

  

Codeforces 1364C - Ehab and Prefix MEXs的更多相关文章

  1. Codeforces Round #649 (Div. 2) C、Ehab and Prefix MEXs D、Ehab's Last Corollary 找环和点染色

    题目链接:C.Ehab and Prefix MEXs 题意; 有长度为n的数组a(下标从1开始),要求构造一个相同长度的数组b,使得b1,b2,....bi集合中没有出现过的最小的数是ai. mex ...

  2. Codeforces Round #649 (Div. 2) C. Ehab and Prefix MEXs

    题目链接:https://codeforces.com/contest/1364/problem/C 题意 给出大小为 $n$ 的非递减数组 $a$,构造同样大小的数组 $b$,使得对于每个 $i$, ...

  3. Codeforces Round #649 (Div. 2) C. Ehab and Prefix MEXs (构造,贪心)

    题意:有长度为\(n\)的数组\(a\),要求构造一个相同长度的数组\(b\),使得\({b_{1},b_{2},....b_{i}}\)集合中没有出现过的最小的数是\(a_{i}\). 题解:完全可 ...

  4. vj-E题Ehab and Path-etic MEXs

    Ehab and Path-etic MEXs 题意:给定一棵树所有的边,对所有的边进行标号,询问任意两点Mex的最大值最小的的标号方案(输出任何一种). Mex(u,v)表示从u到v的简单路径中没有 ...

  5. X - Ehab and Path-etic MEXs CodeForces - 1325C

    MMP,差一点就做对了. 题目大意:给你一个树,对这个树的边进行编号,编号要求从0到n-1,不可重复,要求MEX(U,V)尽可能的小, MEX(x,y)的定义:从x到y的简单路径上,没有出现的最小编号 ...

  6. Codeforces Round #628 (Div. 2) C. Ehab and Path-etic MEXs(树,思维题)

    题意: 给有 n 个点的树的 n-1 条边从 0 到 n-2 编号,使得任意两点路径中未出现的最小数最小的方案. 思路: 先给所有度为 1 的点所在边编号,之后其他点可以随意编排. #include ...

  7. Codeforces 1088E Ehab and a component choosing problem

    Ehab and a component choosing problem 如果有多个连接件那么这几个连接件一定是一样大的, 所以我们先找到值最大的连通块这个肯定是分数的答案. dp[ i ]表示对于 ...

  8. Educational Codeforces Round 26 F. Prefix Sums 二分,组合数

    题目链接:http://codeforces.com/contest/837/problem/F 题意:如题QAQ 解法:参考题解博客:http://www.cnblogs.com/FxxL/p/72 ...

  9. codeforces#1157D. Ehab and the Expected XOR Problem(构造)

    题目链接: http://codeforces.com/contest/1174/problem/D 题意: 构造一个序列,满足以下条件 他的所有子段的异或值不等于$x$ $1 \le a_i< ...

随机推荐

  1. NOIP初赛篇——07信息编码表示

    一.基本概念 编码 ​ 计算机要处理的数据除了数值数据以外,还有各类符号.图形.图像和声音等非数值数据.而计算机只能识别两个数字0,1.要使计算机能处理这些信息,首先必须要将各类信息转换成0与1表示的 ...

  2. PHP 导出到Excel表格中

    /** * 导出excel * @throws \PHPExcel_Exception * @throws \PHPExcel_Reader_Exception * @throws \PHPExcel ...

  3. SpringBoot入门 简单搭建和使用

    前言 差不多两年前,那个时候我准备要做毕业设计了,才第一次知道java有框架这种东西,在网上找了好多SSM的教程,那会儿真的是Spring+SpringMVC+MyBatis搭建的,印象极深的是还要写 ...

  4. 基于 MapReduce 的单词计数(Word Count)的实现

    完整代码: // 导入必要的包 import java.io.IOException; import java.util.StringTokenizer; import org.apache.hado ...

  5. 拍摄、剪辑vlog的思路

    这篇文章是看了很多狂阿弥_ 的作品后 产生的一些小小总结.这些技法只是锦上添花,阿弥作品真正好的地方在于他细腻的情感,真实的对白,和打动人心的满分作文. 优秀的Vlog ,在于它和观众产生的情感共鸣. ...

  6. VBScript调用winscp,实现sftp操作

    最新有一个需求,需要在ssis中调用sftp下载文件,由于服务器上只有framework2.0,并且需要用sqlserver代理调用作业,限制了很多. 首先用的是脚本任务,进程调用winscp.com ...

  7. JMM在X86下的原理与实现

    JMM在X86下的原理与实现 Java的happen-before模型 众所周知 Java有一个happen-before模型,可以帮助程序员隔离各个平台多线程并发的复杂性,只要Java程序员遵守ha ...

  8. Ribbon负载均衡服务调用

    1.在听周阳老师讲解时,使用Ribbon核心组件IRule时是这样用的: ribbon版本 : 自定义配置类不能放在@ComponentScan所扫描的当前包下以及子包下,项目结构如下 MySelfR ...

  9. Jmeter二次开发——自定义函数

    在之前的博文中,Jmeter二次开发--基于Java请求,已介绍了Jmeter二次开发的基础情况,上次分享的是java请求开发,今天来分享下Jmeter中的函数开发.聊到Jmeter的函数,知道Jme ...

  10. Nginx(七):location的使用以及nginx关闭原理

    上一篇中,我们了解了如何nginx的配置原则及解析框架,以及解析location配置的具体实现,相信大家对该部分已经有了比较深刻的认识. 本篇,我们进一步来了解下,解析之后的配置,如何应用到实际中的吧 ...