A. Constructive Problem

题意:给定一个长度为n的非负数组a,我们可以进行一次操作,操作是将l~r这个区间内的所有数变为k(k >= 0),得到b,能不能使mex(a)+ 1 = mex(b)

思路:我是先排了个序,去了一下重,然后得到的这个数组其实只有两种情况





一种每两个数之间的增量为1

一种是每两个数之间的增量大于1

对于第一种情况

我们考虑原数组大小如果和去重后数组大小相同,这种情况是不能增大的

否则说明有重复元素,我们只需要将重复元素变为n+1即可也就是说一定有解

对于第二种情况

我们考虑第一个增量不为一的地方

假如这个地方的增量为2这样我们就需要将这包含这个数的最小区间内的所有数变成mex(a)+1

然后扫一遍check以下就做完了

假如第一个增量不为一的地方的增量>=3则一定有解

#include <bits/stdc++.h>

using namespace std;
typedef long long LL;
const int N = 2e5 + 10;
int a[N], n;
vector<int>b;
void run()
{
b.clear();
cin >> n;
for(int i = 1; i <= n; ++ i) scanf("%d", &a[i]), b.push_back(a[i]);
sort(b.begin(), b.end());
if(n == 1 && a[1] == 0)
{
puts("NO");
return;
}
b.erase(unique(b.begin(), b.end()), b.end());
if(b[0] != 0)
{
puts("YES");
return;
}
if(b.size() - 1 == b[b.size() - 1])
{
if(n == b.size())
{
puts("NO");
return;
}
else
{
puts("YES");
return;
}
}
int t = 0;
for(int i = 0; i < b.size(); ++ i)
{
if(b[i] != i) break;
t = i;
}
if(b[t + 1] - b[t] >= 3) puts("YES");
else
{
int l = 0, r = 0;
for(int i = 1; i <= n; ++ i)
{
if(a[i] == b[t + 1])
{
l = i;
break;
}
}
for(int i = n; i >= 1; -- i)
{
if(a[i] == b[t + 1])
{
r = i;
break;
}
}
map<int, int>mp;
for(int i = 1; i <= n; ++ i)
{
if(i >= l && i <= r) continue;
mp[a[i]] = 1;
}
for(int i = 0; i <= b[t]; ++ i)
{
if(mp.find(i) == mp.end())
{
puts("NO");
return;
}
}
puts("YES");
}
} int main()
{
// freopen("1.in", "r", stdin);
int t;cin >> t;
while(t --) run();
return 0;
}

#866 div1A的更多相关文章

  1. AOJ.866 飞越原野 (三维BFS)

    AOJ.866 飞越原野 (三维BFS) 题意分析 点我挑战题目 相比于普通的BFS,要多一维来记录当前剩余的体力.而且还要额外的一层循环来处理,飞过的路程. 代码总览 #include <io ...

  2. LeetCode 866. Prime Palindrome

    866. Prime Palindrome(回文素数) 题目: 求出大于或等于 N 的最小回文素数. 回顾一下,如果一个数大于 1,且其因数只有 1 和它自身,那么这个数是素数. 例如,2,3,5,7 ...

  3. AcWing 866. 试除法判定质数

    #include <iostream> #include <algorithm> using namespace std; bool is_prime(int x) { ) r ...

  4. 866. Prime Palindrome

    Find the smallest prime palindrome greater than or equal to N. Recall that a number is prime if it's ...

  5. (转) [it-ebooks]电子书列表

    [it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Obj ...

  6. HTML5移动开发学习笔记之CSS3基础学习

    CSS回顾 在学CSS3之前首先巩固下CSS的基础知识. 1.CSS框模型 举例子: #box { width: 70px; margin: 10px; padding: 5px; } 这个代码将出现 ...

  7. java web学习总结(二十七) -------------------JSP标签介绍

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  8. Dagger2 (二) 进阶篇

    一.作用域Scope 之前了解RoboGuice的时候,我们知道它默认给我们提供了几个注解,ContextSingleton和Singleton,但是Dagger2更为灵活,只有javax包中提供的S ...

  9. Apache主配置文件httpd.conf 详解

    Apache的主配置文件:/etc/httpd/conf/httpd.conf 默认站点主目录:/var/www/html/ Apache服务器的配置信息全部存储在主配置文件/etc/httpd/co ...

  10. Python之路【第二十四篇】Python算法排序一

    什么是算法 1.什么是算法 算法(algorithm):就是定义良好的计算过程,他取一个或一组的值为输入,并产生出一个或一组值作为输出.简单来说算法就是一系列的计算步骤,用来将输入数据转化成输出结果. ...

随机推荐

  1. Unity自定义类使用携程--自身不继承MonoBehaviour

    [TOC] 参考: https://www.jianshu.com/p/67f498cb839b 话不多说,直接上代码 1 using System.Collections; 2 using Unit ...

  2. hadoop 启动增加DEBUG信息

    export HADOOP_ROOT_LOGGER=DEBUG,console

  3. 【算法】单调栈 & 单调队列学习笔记

    1. 单调栈简介 1.1 前言 今天是 2023/1/15,一中寒假集训阶段性的结束了.集训的学习笔记可以在本人 blogs 的[算法]标签栏中找. 马上就要过年了,提前祝大家新年快乐! 1.2 什么 ...

  4. 【技术积累】Linux中的命令行【理论篇】【一】

    7z命令 命令介绍 7z命令是Linux系统中的一个压缩和解压缩工具,它可以用来创建.压缩和解压缩7z格式的文件.7z是一种高压缩率的文件格式,通常比其他常见的压缩格式(如zip和gzip)具有更高的 ...

  5. CSS: 绝对定位fixed

    属性介绍 元素会被移出正常文档流,并不为元素预留空间,而是通过指定元素相对于屏幕视口(viewport)的位置来指定元素位置.元素的位置在屏幕滚动时不会改变.打印时,元素会出现在的每页的固定位置.fi ...

  6. python 镜像

    https://pypi.douban.com/simple/   豆瓣源 pip install -i https://pypi.douban.com/simple/ pymysql # pymys ...

  7. 无linux基础也能熟练掌握git的基本操作

    git是一个用来管理项目的工具,它的远程仓库有github.gitee.gitlab代码托管中心,既可以用于个人共享代码,又可以用于团队进行项目的协作与发布,那么我们一起来了解一下git该如何使用~ ...

  8. 用户空间协议栈设计和netmap综合指南

    本文分享自华为云社区<用户空间协议栈设计和netmap综合指南,将网络效率提升到新高度>,作者:Lion Long . 协议概念 1.1.七层网络模型和五层网络模型 应用层: 最接近用户的 ...

  9. redis分布式锁,setnx+lua脚本的java实现

    1 前言 在现在工作中,为保障服务的高可用,应对单点故障.负载量过大等单机部署带来的问题,生产环境常用多机部署.为解决多机房部署导致的数据不一致问题,我们常会选择用分布式锁. 目前其他比较常见的实现方 ...

  10. Go语句与表达式深度解析:全案例手册

    关注公众号[TechLeadCloud],分享互联网架构.云服务技术的全维度知识.作者拥有10+年互联网服务架构.AI产品研发经验.团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资 ...