Codeforces Round #429 (Div. 2) | A. Generous Kefa

本文介绍了一种解决分配球问题的方法。该问题的核心是将不同颜色的球分配给多个朋友,确保每个人收到的球颜色各不相同。通过统计每种颜色球的数量并检查是否超过朋友数量来判断方案是否存在。

题意

Kefa有n个球,每个球都有一个颜色,他要把这n个球全部给他的k个朋友,如果有朋友收到的球中有两个球的颜色一样,那么朋友会不开心,问Kafa能不能做到让所有的朋友都不会不开心。如果朋友没有收到球,那么朋友不会不开心。

解题思路

统计每种颜色球的个数,如果个数大于k,那么会有朋友不开心。

参考代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
char s[200];
int a[500];
int main(){
    int n,k;
    while (cin>>n>>k){
        cin>>s;
        memset(a,0,sizeof(a));
        for (int i=0;i<n;i++)
            a[s[i]]++;
        int flag=0;
        for (int i=0;i<400;i++){
            if (a[i]>k){
                flag=1;
                break;
            }
        }
        if (flag) cout<<"NO"<<endl;
        else cout<<"YES"<<endl;
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值