题解 P1184 【高手之在一起】
longyuxuan · · 题解
这题很简单,但是为什么有些人AC不了呢?
第一,读入完数字之后应该吧数字后面的换行符吃掉
第二,地点可能会有空格
第三,经过我的多次测试后发现落谷有个bug(也不知道是不是bug),就是使用getline之后会在字符后面加一个ASCLL码为13的字符,这就是有些人在自己机子上过了可是第一个测试点没过的原因
C++的AC代码如下
#include<bits/stdc++.h>//万能头文件~=~
using namespace std;
string gs[21],ll;
int n,m,ans=0;
int main()
{
cin>>n>>m;
getline(cin,ll);//把数字后面没用的东西吃掉,防止读入出错
for(int i=1;i<=n;i++)
getline(cin,gs[i]);//地名可能会有空格,注意了
for(int i=1;i<=m;i++)
{
getline(cin,ll);
if(ll[ll.size()-1]!=13)ll=ll+(char)13;//应对这个bug的方法,在机子上测试不用这句
for(int j=1;j<=n;j++)
if(ll==gs[j])
{
ans++;
break;
}
}
cout<<ans;
return 0;
}