2 条题解
-
-3
本题要求还差多少张牌可以凑够一套牌,但是他给出的扑克有可能重复。
因此我们逆向思维,先假设所有牌都没有,设ans=52为还差多少牌。
再开一个map<string,int> jm记录各种牌有多少张,每拿入一个牌,就判断之前是否拿过,如果没拿过就记录一下:jm[zz]++,ans--;
如果拿过了就不管他。
#include<bits/stdc++.h> using namespace std; map<string,int> jm; int n,ans=52; string zz; int main(){ cin>>n; for(int i=1;i<=n;i++){ cin>>zz; if(jm[zz]==0) ans--,jm[zz]++; } cout<<ans; return 91-78-13; }
信息
- ID
- 5
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 1
- 标签
- (无)
- 递交数
- 24
- 已通过
- 11
- 上传者