AGC016B Colorful Hats(构造)
题目大意:
给定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(构造)相关推荐
- [AGC016B]Colorful Hats
题意:有$N$只猫,每只猫带着某种颜色的帽子,给出每只猫能看到(即其他$N-1$只猫)的颜色种数$a[i]$,问是否可以构造出合法序列. 首先有一个显而易见的结论,及最大值和最小值相差不超过1 我们考 ...
- 花里胡哨der惹某第12周周记(习题+感悟)
ACM菜是原罪 (一)2019 ICPC Asia Nanjing Regional A - Hard Problem 题目描述 Input Output Sample Input Sample Ou ...
- LeetCode简单题之构造矩形
题目 作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的. 所以,现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面.要求: 你设计的矩形 ...
- 兑换量子计算机,阅读 | 【量子计算机】构造置换量子门
原标题:阅读 | [量子计算机]构造置换量子门 量子计算机的一个基本组成单位叫量子门(quantum gate),下面简单介绍些基本概念. 量子比特和量子态 量子计算机的信息存储单元是一种叫做量子比特 ...
- [ActionScript 3.0] AS向php发送二进制数据方法之——在URLRequest中构造HTTP协议发送数据...
主类 HTTPSendPHP.as 1 package 2 { 3 import com.JPEGEncoder.JPGEncoder; 4 import com.fylib.httpRequest. ...
- js把base64串解析成中文_回文问题终极篇:最小代价构造回文串
学算法认准 labuladong 东哥带你手把手撕力扣? 点击下方卡片即可搜索? 读完本文,你可以去力扣完成第 1312 题「让字符串成为回文串的最少插入次数」,难度 Hard. 回文串就是正着读反着 ...
- php构造和析构方法,php5构造函数与析构函数实例
自php5起,有了构造函数与析构函数. 这使得php更富有面向对象的魅力了. 在php4时,构造函数用的是与类同名的函数来进行构造这个动作. 例如: 复制代码 代码示例: /* * myclass.p ...
- 消除左递归实验代码_「leetcode」108. 构造二叉搜索树【递归】【迭代】详解!
构造二叉搜索树,一不小心就平衡了 ❞ 108.将有序数组转换为二叉搜索树 将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树. 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树 ...
- 对象特性--构造函数调用规则
默认情况下,C++编译器至少给一个类添加3个函数: 1.默认构造函数(无参,函数体为空) 2.默认析构函数(无参,函数体为空) 3.默认拷贝构造函数,对属性进行值拷贝 1.创建一个类,C++编译器会给 ...
最新文章
- ​双十一剁手后,听蒋涛谈谈AI人才多么吸金:2018年社招AI人才平均月薪竟高达4万,算法红利期还有2年
- 推荐几本Python电子书
- 【错误记录】Groovy 报错 ( Execution failed for task ‘:compileGroovy‘. > org/apache/tools/ant/taskdefs/Java )
- 算法经典书籍--计算机算法的设计与分析
- python语言remove_慎用python的pop和remove方法
- 外媒:苹果正研发新的Apple Watch机型 显示屏和速度将升级
- 华为员工“削尖脑袋”想进荣耀!网友也可以放心了,荣耀产品售后不受影响...
- 多线程生成的原因(Java内存模型与i++操作解析)
- python学习第25天
- 床头千万不要有电磁波
- Openwrt源码LuCI应用完整说明
- 基于荔枝派Lichee Nano(全志f1c100s)的u-boot移植(一)
- google linux桌面快捷方式,centos7 rhel7 linux下怎么安装google chrome 设置谷歌浏览器桌面快捷方式...
- 如何安装Win10/Ubuntu双系统
- 【Matlab】根据excel画折线图和柱状图
- 期待只在最美的时光遇见你
- 高德地图API总结--Marker多点聚合
- H3C交换机如何查环路
- Win10 WSL2 linux 子系统安装Docker
- 简单人物画像_怎样把复杂的人物肖像画简单化
热门文章
- 百练1089:数字反转
- Java 利用InetAddress类确定特殊Ip地址
- 【Linux系统编程】Linux 可执行文件结构与进程结构
- python数据框常用操作_转载:python数据框的操作
- 列表左右箭头滑动_我写了一套框架,把滑动窗口算法变成了默写题
- linux音频时钟bclk,linux alsa音频中采样率fs、比特率BCLK 、主时钟MCLK关系
- 电脑桌面便签_电脑桌面定时提醒记事本便签软件
- php作品答辩问问题,一般答辩会问到什么问题
- Redis源码剖析(六)事务模块
- java ftp 读取 txt文件_java通过ftp方式读取文件,并解析入库