CF1774B-Coloring 题解
sker114514 · · 题解
我非常喜欢吸氧。
正文
这道题是一个不用吸氧的关于鸽笼原理的题目,所谓鸽笼原理,又称抽屉原理,就是说把
根据鸽笼原理,我们可以找出在本题里的“铁笼数”
之后我们就来判断能否装下所有鸽子了。容易发现,如果
继续进行分析,发现有可能会有
当然,在上面的分析中,我们说的是最后一个笼子的容积可能为 n%k==0?k:n%k。
否则,说明一定能装下这些鸽子。
AC C++ CODE:
#include<bits/stdc++.h>
using namespace std;
int a[100001];
int main(){
int t,n,m,k,tot=0;
bool f=0;
cin>>t;
while(t--){
cin>>n>>m>>k;
for(int i=1;i<=m;i++){
cin>>a[i];
if(a[i]>ceil(n*1.0/k))f=1;
else if(a[i]==ceil(n*1.0/k))tot++;
}
if(f||tot>(n%k==0?k:n%k))cout<<"NO\n";
else cout<<"YES\n";
tot=f=0;
}
return 0;
}
完结撒花!
By ImNot6Dora