NC25878. 表单
描述
输入描述
第一行两个整数n,Q
后n行每行一个字符串
后Q行每行代表一个操作:
一操作:1 s
二操作:2
输出描述
对于每个二操作,进行回答。
示例1
输入:
4 4 play the pubg game 1 game 1 pubg 2 2
输出:
2 0
说明:
C++14(g++5.4) 解法, 执行用时: 446ms, 内存消耗: 15180K, 提交时间: 2019-06-14 20:30:40
#include<bits/stdc++.h> using namespace std; map<string,int>m; int main() { int n,q,ans=0,x; scanf("%d%d",&n,&q); string s; for(int i=1;i<=n;i++){ cin>>s; if(m[s]) ans++; m[s]=1; } while(q--){ scanf("%d",&x); if(x==1) { cin>>s; if(m[s]) ans++; m[s]=1; } else{ printf("%d\n",ans); ans=0; } } }
C++(clang++ 11.0.1) 解法, 执行用时: 361ms, 内存消耗: 15136K, 提交时间: 2022-11-21 20:41:02
#include<bits/stdc++.h> using namespace std; map<string,int>m; int main() { int n,q,ans=0,x; scanf("%d%d",&n,&q); string s; for(int i=1;i<=n;i++){ cin>>s; if(m[s]) ans++; m[s]=1; } while(q--){ scanf("%d",&x); if(x==1) { cin>>s; if(m[s]) ans++; m[s]=1; } else{ printf("%d\n",ans); ans=0; } } }