题目大意:

给定n和n个数,每个数a[i]代表除了i外序列中颜色不同的数的个数,问能否构造出来这个数列。

比较简单,首先先求出来a数列的最大值Max,

如果有数小于Max-1,那么显然是不存在的

接下来就是有m个数等于Max-1,n-m个数等于Max

那么可以知道m个数中每个数肯定是有且只有一种颜色

所以m<Max,剩下的必须至少有2个,所以条件就是m<Max && m + 2*(Max-m) <= n

特殊情况:所有数都等于Max,这时候有2种情况,一种是每个数都是不同的,一种是2*Max <= n,判断一下就好

#include <iostream>
#include <cstring>
#include <cstdio>
#include <map>
using namespace std;
int n;
int a[1000000];
map<int, int>M;
int main()
{cin>>n;for(int i = 0; i < n; i++) cin>>a[i];int Max = 0, t = 0;for(int i = 0; i < n; i++){if(!M[a[i]]) { M[a[i]] = 1; t++; Max = max(Max, a[i]); }}for(int i = 0; i < n; i++) if(a[i] < Max-1) { cout<<"No"<<endl; return 0; }if(t > 2) { cout<<"No"<<endl; }else {int m = 0;for(int i = 0; i < n; i++) if(a[i] == Max-1) m++;if(m == 0) {if(2*(Max-m) <= n) cout<<"Yes"<<endl;else if(Max == n-1) cout<<"Yes"<<endl;else cout<<"No"<<endl;return 0;}if(m < Max && (m + 2*(Max-m) <= n)) cout<<"Yes"<<endl;else cout<<"No"<<endl;}
}

转载于:https://www.cnblogs.com/Saurus/p/7048324.html

AGC016B Colorful Hats(构造)相关推荐

  1. [AGC016B]Colorful Hats

    题意:有$N$只猫,每只猫带着某种颜色的帽子,给出每只猫能看到(即其他$N-1$只猫)的颜色种数$a[i]$,问是否可以构造出合法序列. 首先有一个显而易见的结论,及最大值和最小值相差不超过1 我们考 ...

  2. 花里胡哨der惹某第12周周记(习题+感悟)

    ACM菜是原罪 (一)2019 ICPC Asia Nanjing Regional A - Hard Problem 题目描述 Input Output Sample Input Sample Ou ...

  3. LeetCode简单题之构造矩形

    题目 作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的. 所以,现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面.要求: 你设计的矩形 ...

  4. 兑换量子计算机,阅读 | 【量子计算机】构造置换量子门

    原标题:阅读 | [量子计算机]构造置换量子门 量子计算机的一个基本组成单位叫量子门(quantum gate),下面简单介绍些基本概念. 量子比特和量子态 量子计算机的信息存储单元是一种叫做量子比特 ...

  5. [ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据...

    主类 HTTPSendPHP.as 1 package 2 { 3 import com.JPEGEncoder.JPGEncoder; 4 import com.fylib.httpRequest. ...

  6. js把base64串解析成中文_回文问题终极篇:最小代价构造回文串

    学算法认准 labuladong 东哥带你手把手撕力扣? 点击下方卡片即可搜索? 读完本文,你可以去力扣完成第 1312 题「让字符串成为回文串的最少插入次数」,难度 Hard. 回文串就是正着读反着 ...

  7. php构造和析构方法,php5构造函数与析构函数实例

    自php5起,有了构造函数与析构函数. 这使得php更富有面向对象的魅力了. 在php4时,构造函数用的是与类同名的函数来进行构造这个动作. 例如: 复制代码 代码示例: /* * myclass.p ...

  8. 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!

    构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...

  9. 对象特性--构造函数调用规则

    默认情况下,C++编译器至少给一个类添加3个函数: 1.默认构造函数(无参,函数体为空) 2.默认析构函数(无参,函数体为空) 3.默认拷贝构造函数,对属性进行值拷贝 1.创建一个类,C++编译器会给 ...

最新文章

  1. ​双十一剁手后,听蒋涛谈谈AI人才多么吸金:2018年社招AI人才平均月薪竟高达4万,算法红利期还有2年
  2. 推荐几本Python电子书
  3. 【错误记录】Groovy 报错 ( Execution failed for task ‘:compileGroovy‘. > org/apache/tools/ant/taskdefs/Java )
  4. 算法经典书籍--计算机算法的设计与分析
  5. python语言remove_慎用python的pop和remove方法
  6. 外媒:苹果正研发新的Apple Watch机型 显示屏和速度将升级
  7. 华为员工“削尖脑袋”想进荣耀!网友也可以放心了,荣耀产品售后不受影响...
  8. 多线程生成的原因(Java内存模型与i++操作解析)
  9. python学习第25天
  10. 床头千万不要有电磁波
  11. Openwrt源码LuCI应用完整说明
  12. 基于荔枝派Lichee Nano(全志f1c100s)的u-boot移植(一)
  13. google linux桌面快捷方式,centos7 rhel7 linux下怎么安装google chrome 设置谷歌浏览器桌面快捷方式...
  14. 如何安装Win10/Ubuntu双系统
  15. 【Matlab】根据excel画折线图和柱状图
  16. 期待只在最美的时光遇见你
  17. 高德地图API总结--Marker多点聚合
  18. H3C交换机如何查环路
  19. Win10 WSL2 linux 子系统安装Docker
  20. 简单人物画像_怎样把复杂的人物肖像画简单化

热门文章

  1. 百练1089:数字反转
  2. Java 利用InetAddress类确定特殊Ip地址
  3. 【Linux系统编程】Linux 可执行文件结构与进程结构
  4. python数据框常用操作_转载:python数据框的操作
  5. 列表左右箭头滑动_我写了一套框架,把滑动窗口算法变成了默写题
  6. linux音频时钟bclk,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系
  7. 电脑桌面便签_电脑桌面定时提醒记事本便签软件
  8. php作品答辩问问题,一般答辩会问到什么问题
  9. Redis源码剖析(六)事务模块
  10. java ftp 读取 txt文件_java通过ftp方式读取文件,并解析入库