1.给你半副牌27张,有四种花色1, 2, 3, 4,数值JQK分别算是11, 12, 13,Ace算数字14,小王大王算15, 16 。求不同的同花顺的个数(大王小王不参与计算)。
思路:把每一种花色分别进行分别统计。对每一种花色进行排序,去重。弹出大小王;之后对每一种花色进行枚举。
#include<iostream>
#include<algorithm>
#include<vector>
#include<unordered_map>
using namespace std;
vector<int> card[5];
int main(){
for (int i = 0; i < 27; i++){
int color, val;
cin >> val >> color;
if (val == 14) card[color].push_back(1); //把A入队2次
card[color].push_back(val);
}
for (int i = 1; i <= 4; i++){
sort(card[i].begin(), card[i].end());
card[i].erase(unique(card[i].begin(), card[i].end()), card[i].end());
while (card[i].size() && card[i].back() >= 15) card[i].pop_back();
}
int res = 0;
for (int i