第三题:https://ac.nowcoder.com/acm/contest/917/C
dbq:牛客的这道题真的绝了,wa的原因我看了一下,完全不影响答案,脑子抽写了两句语句(与结果不影响)导致wa,这题的评测令人害怕。。。
#include<bits/stdc++.h> using namespace std; #define maxn 500010 int n,Q; map<string,int> mp; int sum=0,temp=0;//总字符串数量-总字符串种类 char s[45]; int main() { scanf("%d%d",&n,&Q); sum=n;//总字符串数量为n+操作数为1的次数 while(n--){ scanf("%s",s); if(mp.count(s)<=0) //字符串不存在,种类temp+1 { temp++; mp.insert(map<string,int>::value_type(s,1)); } // else //语句else会导致程序wa 好像知道了什么dbq... if的判断为s不存在,else是存在,但是执行了if语句之后s变为存在,则else语句也执行了 // mp[s]++; } int t; while(Q--){ scanf("%d",&t); if(t==1){ scanf("%s",s); sum++; if(mp.count(s)<=0)//字符串不存在,种类temp+1 { temp++; mp.insert(map<string,int>::value_type(s,1)); } } else { cout<<sum-temp<<endl; sum=temp; } } }