题解 P1184 【高手之在一起】
Real_Create · · 题解
首先,90分的人,和你们说一个这道题的BUG坑——最后一个字符串上不加换行符就是 char(13) 但前面所有都会加恶心极了
那么你非常开心,因为你觉得自己找到应对的方法了——把给它加回去
你兴高采烈地提交了代码,悲伤地发现,除了第一个测试点,其他最后都有换行
所以说你用if不就好了?
if(st[st.size()-1]!=13)
{
st=st+char(13);
}
那么要做这题,先一个叫map的
map和数组的用法是一样的,定义是map<下表类型,存放的类型>名称;
所以会有a["absd"]是十分正常的
那么这题就迎刃而解鸟
#include <bits/stdc++.h>
using namespace std;
#define qwq return 0;
#define QAQ int main()
map<string,bool>a;//map出现惹(这是以i字符串为下标的bool类型数组a
int m,n,s;
string st;
QAQ
{
cin>>n>>m;
getline(cin,st);//吃掉换行
for(int i=0;i<n;i++)
{
getline(cin,st);
a[st]=1;
}
for(int i=1;i<m;i++)
{
getline(cin,st);
s+=a[st];
}
getline(cin,st);
if(st[st.size()-1]!=13)//加上换行符
{
st=st+char(13);
}
s+=a[st];
cout<<s;
qwq
}