1 条题解
-
3
“看到比赛题第一步,咱们先~兴~奋~”首先看题目要求,大概意思就是看自己得到了几种牌,输出 即可;
But,学长学长,52个还是太吃操作了,也不想用,有没有其他简单又好用的思路呢?有的兄弟,有的;
首先我们知道,STL里的string类型是有find这个函数的,它会返回查找串在总串里第一次出现的位置,若串中没有找到查找串则返回
string::npos(可以用-1代替但是这个-1是unsigned long类型)那么好,我们只需要一个字符串把已有的牌存起来,若出现之前没有的牌就把它放到字符串里,然后让剩余牌数累减或拥有牌数累加即可
代码如下
#include <bits/stdc++.h> #define ll long long using namespace std; int n,ans; string st; signed main() { cin>>n; ans=52; for(int i=1;i<=n;i++){ string s; cin>>s; if(st.find(s)==string::npos){ ans--; st+=s; } } cout<<ans; return 0; }“第二步,5s就把这道题做出来了”“第三步,太爽了(标准河间口音)”
- 1
信息
- ID
- 11
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- 递交数
- 9
- 已通过
- 7
- 上传者
冀公网安备13090002000383号