1 条题解
-
0
思路与算法
花色和点数共同定义52种身份,输入重复牌不能补齐缺失身份,统计不同牌后以52相减;不同于库内普通牌加万能牌组副数题。
按上述模型建立状态或枚举对象,依代码中的顺序处理输入并输出完整答案。
正确性说明
完整牌副的52个身份各需要至少一张,已有每个不同身份可抵消恰好一个需求。重复身份不抵消其他身份,所以缺失数=52减不同身份数。
复杂度
O(n log n)时间、O(n)集合空间,n不超过52。
易错点
花色和点数共同组成身份,T表示10,忽略重复次数。
参考代码(C++11)
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; set<string> s; while (n--) { string x; cin >> x; s.insert(x); } cout << 52 - s.size() << "\n"; }
- 1