这个题主要就是看你会不会用Map容器了。。。
给你 一些字符串 如下
B XX A
C XX A
D XX A
E XX B
让你计算从A开始最多可以沿着某一条路径传播多少个人
代码如下:
#include <iostream>
#include <cstdio>
#include <queue>
#include <cmath>
#include <string>
#include <map>
#include <cstring>
#include <cstdlib>
#include <algorithm>
using namespace std;
string date1[205];//第一个
string date2[205];//第二个
int n;
//全部转化成大写
void tran(string &date)
{
for(int i=0;i<date.length();i++)
{
if(date[i]<='Z' && date[i]>='A')
{
//小写转化成大写
date[i] = date[i]-'A'+'a';
}
}
}
int main()
{
freopen("2.txt","r",stdin);
cin>>n;
map<string,int> date;
string init = "polycarp";
date[init] = 1;
int result_max = 1;
for(int i=0;i<n;i++)
{
string temp;
cin>>temp;
tran(temp);
date1[i] = temp;
cin>>temp;
string temp1;
cin>>temp1;
tran(temp1);
date2[i] = temp1;
// cout<<date1[i]<<endl;
// cout<<date2[2]<<endl;
date[date1[i]] = date[date2[i]]+1;
result_max = max(result_max,date[date1[i]]);
}
cout<<result_max<<endl;
return 0;
}