题解:P14758 役满之泪

· · 题解

题意

告诉你手上和国士无双相关的牌的数量,问你自摸和出国士无双至少要摸多少牌。

分析

开一个桶记录出现 k,0\le k\le 4 次的牌的种数。

首先,如果啥也没有,需要摸 14 张。

只要出现过的牌,至少会用到一张,所以每出现一种可以少摸一张牌。

然后如果某种牌出现了至少两次,可以再少摸一张。

实现

#include<bits/stdc++.h>
using namespace std;
const int N = 20;
int a[N],res = 14,c[5];
int main()
{
    for(int i = 1; i <= 13; i ++) cin>>a[i];
    for(int i = 1; i <= 13; i ++) c[a[i]] ++;
    if(c[2] + c[3] + c[4]) res --;
    res -= c[1] + c[2] + c[3] + c[4];
    cout<<res<<endl;
    return 0;
}