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种情况,一种是每个数都是不同…
题目链接 思路 首先,如果没人说谎那么序列中肯定只有一大一小两种数,假设大的数为x,小的数为y.因为对于每个人只有两种情况,要么自己与除自己外的某个人拥有相同的颜色,此时总颜色数就是这个人所能看到的颜色数量.要么这个人单独拥有一种颜色,此时总颜色数就是这个人所能看到的数量+1.所以x和y相差一定小于等于1.我们分别统计出x和y的数量,因为x的人都是单独拥有一种颜色,所以看到y的人所能拥有的颜色数就是用总颜色数tot-x.因为看到y的人至少是两个人一种颜色,所以tot-x要小于toty/2才行,否…
Description ​ 有n个人,每个人都戴着一顶帽子.当然,帽子有不同的颜色. ​ 现在,每个人都告诉你,他看到的所有其他人的帽子共有多少种颜色,请问你有没有符合所有人的描述的情况. Input ​ 第一行一个整数n. 第二行n个整数,第i个数ai表示第i个人看到的所有其他人帽子颜色的种数. Output ​ 若存在一种情况满足条件,输出"Yes",否则输出"No".(均不含引号) Sample Input Sample Input 1 3 1 2 2 Sam…
题意 题目链接 有$n$个人,每个人有一种颜色,第$i$个人说除了我之外有$a_i$种不同的颜色,问是否存在一组合法解 Sol 700分的题就这么神仙了么..好难啊... 先说结论吧 设$mx, mn$分别为最大 / 最小值,显然$mx - mn > 1$的时候无解 接下来分两种情况讨论 $mx = mn$:这时候每一种颜色要么是互不相同,要么是至少出现两次 $mx = mn +1$:这时候小的元素一定是独一无二的,大的元素至少出现两次. 以上结论都可以用反证法证明. 总结:虽然结论证起来不难,…
Description 有n个人,每个人都戴着一顶帽子.当然,帽子有不同的颜色. 现在,每个人都告诉你,他看到的所有其他人的帽子共有多少种颜色,请问你有没有符合所有人的描述的情况. Input 第一行一个整数n. 第二行n个整数,第i个数ai表示第i个人看到的所有其他人帽子颜色的种数. Output 若存在一种情况满足条件,输出"Yes",否则输出"No".(均不含引号) 题解: 看起来就像是(玄学)结论题-- 首先很明显的是,最大值和最小值的差不能大于1. 那我们…
2017国家集训队作业[agc016b]Color Hats 题意: 有\(N\)个人,每个人有一顶帽子.帽子有不同的颜色.现在,每个人都告诉你,他看到的所有其它人的帽子共有多少种颜色,问有没有符合所有人的描述的情况.(\(N\leq 10^5\)) 题解: 网上有很多题解.我在这里讲讲我在场上打表的心路历程. 话说我最后半小时终于从\(T2\)的泥潭中脱困,看到这题,打了个表: 3 1 1 1 1 2 2 2 2 2 4 1 1 1 1 1 2 2 2 2 2 2 2 2 2 3 3 3 3…
题目链接 对于某个元素分类讨论一下,就可以知道n个元素的总颜色种数了. 比如对a[1]分类讨论: 若1的颜色和某个元素相同,则总颜色数为a[1].a[i]要么等于a[1](i与某个元素颜色相同,记个数为A),要么等于a[1]+1(i的颜色唯一,记个数为B). 要满足:B不等于n-1(得有个i和1颜色相同):最多颜色数=(A+1)/2+B要大于等于a[1]:同时还有上界限制!即最少颜色数=1+B要小于等于a[1]. 若1的颜色是唯一的,则总颜色数为a[1]+1.a[i]要么等于a[1](i的颜色唯…
分情况讨论的神题... max不等于min + 1 或者不等于min,这种情况显然不存在. 如果都等于一个数 有两种情况: 互相独立,那么a[i]肯定==n-1 有相同的,那么a[i]一定不是独立的. 那么就会有a[i]即为出现颜色的总个数. 因为又不是独立的.所以每种颜色至少出现两次. 所以满足\(2 * a[i] <= n\)即可. 继续分析,如果max == min + 1的情况. n : 人数 一个点至少能看到有max - 1种颜色. max : 能看到最多的颜色. (总颜色) max…
题目传送门:https://agc016.contest.atcoder.jp/tasks/agc016_b 题目大意: 有\(N\)只猫,每只猫头上带着一个帽子,帽子有颜色,现在告诉你每只猫能看到的其他猫的帽子颜色种数\(a_i\),问是否可能 又是一个结论题--我们设\(Max=\max\limits_{i=1}^n\{a_i\},Min=\min\limits_{i=1}^n\{a_i\}\),若\(Max-Min>1\),则不可能,然后我们分两种情况讨论: \(Max=Min\),那么若…
题目链接:http://agc016.contest.atcoder.jp/tasks/agc016_b 题解:挺有意思的题目主要还是模拟出最多有几种不可能的情况,要知道ai的差距不能超过1这个想想就知道,然后再好好想一下,想想可能会有点麻烦 聪明的人应该一下就想出来了,反正我想了挺久. #include <iostream> #include <cstring> using namespace std; const int M = 1e5 + 10; int a[M]; int…