• AtCoder Grand Contest 016 B


    题目传送门:https://agc016.contest.atcoder.jp/tasks/agc016_b

    题目大意:

    (N)只猫,每只猫头上带着一个帽子,帽子有颜色,现在告诉你每只猫能看到的其他猫的帽子颜色种数(a_i),问是否可能


    又是一个结论题……我们设(Max=maxlimits_{i=1}^n{a_i},Min=minlimits_{i=1}^n{a_i}),若(Max-Min>1),则不可能,然后我们分两种情况讨论:

    • (Max=Min),那么若(Maxin(lfloordfrac{n}{2} floor,n-1)igcup[n,infty)),则不可能,否则可能(要么都独一无二,要么一种颜色至少出现两次)
    • (Max=Min+1),那么对于(iin[1,n],a_i=Min),它们的帽子颜色都独一无二的,因为不可能使得所有帽子颜色都独一无二,所以令(Max'=Max-cnt[Min],n'=n-cnt[Min],cnt[Min])(Min)出现次数,若(Max'in[1,lfloordfrac{n'}{2} floor]),则可能,否则不可能
    /*program from Wolfycz*/
    #include<cmath>
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #define inf 0x7f7f7f7f
    using namespace std;
    typedef long long ll;
    typedef unsigned int ui;
    typedef unsigned long long ull;
    inline char gc(){
    	static char buf[1000000],*p1=buf,*p2=buf;
    	return p1==p2&&(p2=(p1=buf)+fread(buf,1,1000000,stdin),p1==p2)?EOF:*p1++;
    }
    inline int frd(){
    	int x=0,f=1; char ch=gc();
    	for (;ch<'0'||ch>'9';ch=gc())	if (ch=='-')	f=-1;
    	for (;ch>='0'&&ch<='9';ch=gc())	x=(x<<3)+(x<<1)+ch-'0';
    	return x*f;
    }
    inline int read(){
    	int x=0,f=1; char ch=getchar();
    	for (;ch<'0'||ch>'9';ch=getchar())	if (ch=='-')	f=-1;
    	for (;ch>='0'&&ch<='9';ch=getchar())	x=(x<<3)+(x<<1)+ch-'0';
    	return x*f;
    }
    inline void print(int x){
    	if (x<0)	putchar('-'),x=-x;
    	if (x>9)	print(x/10);
    	putchar(x%10+'0');
    }
    const int N=1e5;
    int v[N+10];
    int main(){
    	int n=read(),Max=-inf,Min=inf;
    	for (int i=1;i<=n;i++){
    		v[i]=read();
    		Max=max(Max,v[i]);
    		Min=min(Min,v[i]);
    	}
    	if (Max-Min>1)	printf("No
    ");
    	if (Max==Min)	printf(Max==n-1||Max<=n>>1?"Yes
    ":"No
    ");
    	if (Max==Min+1){
    		int cnt=0;
    		for (int i=1;i<=n;i++)	if (v[i]==Min)	cnt++;
    		n-=cnt,Max-=cnt;
    		printf(Max>0&&Max<=n>>1?"Yes
    ":"No
    ");
    	}
    	return 0;
    }
    
  • 相关阅读:
    教程:在 Visual Studio 中开始使用 Flask Web 框架
    教程:Visual Studio 中的 Django Web 框架入门
    vs2017下发现解决python运行出现‘No module named "XXX""的解决办法
    《sqlite权威指南》读书笔记 (一)
    SQL Server手工插入标识列
    hdu 3729 I'm Telling the Truth 二分图匹配
    HDU 3065 AC自动机 裸题
    hdu 3720 Arranging Your Team 枚举
    virtualbox 虚拟3台虚拟机搭建hadoop集群
    sqlserver 数据行统计,秒查语句
  • 原文地址:https://www.cnblogs.com/Wolfycz/p/10119569.html
Copyright © 2020-2023  润新知