Codeforces Round 941 (Div. 2)(A-D)

A. Card Exchange(思维

Problem - A - Codeforces

题目大意

        给定n张牌,每次选k张相同的牌,把他们变成k-1张任意的牌,求最后手中最少能有几张牌。

思路

        直接判断这n张牌当中有没有k张一样的牌,如果有就一定能变成最后只剩k-1张牌。如果没有k张一模一样的牌,说明一次变化都做不了,最后只能有n张牌。

#include
using ll=long long;
const int N=1e6+10;
const int mod=998244353;
int a[N];
std::map mp;
void solve()
{
    mp.clear();
    int n,k;
    std::cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        std::cin>>a[i];
        mp[a[i]]++;
    }
    int flag=0;
    for(auto i:mp)
    {
        if(i.second>=k)
        {
            flag=1;
            break;
        }
    }
    if(flag) std::cout<>t;
    while(t--)
    {
        solve();
    }
    return 0;
}

B. Rectangle Filling(思维

Problem - B - Codeforces 

你可能感兴趣的:(XCPC,算法)