题目
感觉这题拿国二难度很大啊,要不是我做过这个L3-1,我这把都拿不了。可能是模型建立能力不太够叭。L1-8也很恶心,敲了半天。冰岛人那个我着实没想到那个情况。
l2-2冰岛人
坑点: 如果a和b的LCA,是a的第三代同时是b的第六代,好寄。因为题干要求LCA要>=任何一方的深度+4.按我原来的搜索方法是判断不出来的,我把各自深度4以内的节点计数++,>1说明是LCA,但是遇到3、6代就搜不出来,误以为正确。所以应该暴力地枚举两个点的深度差4以内的父节点,判断LCA是否对于a或者b深度差=5&&j>=5) break;
if(x==y&&(in;
while(n--)
{
string a,b; cin>>a>>b;
vis[a] = 1;
if(b.back() == 'n')
{
string s = b.substr(0,b.size()-4);
mp[a] = s;
to[a] = to[s] = vis[s] = 1;
}
else if(b.back() == 'r')
{
string s = b.substr(0,b.size()-7);
mp[a] = s;
to[s] = vis[s] = 1;
}
else if(b.back() == 'm')
{
to[a] = 1;
}
}
cin>>m;
while(m--)
{
string a,b,x,y; cin>>a>>x>>b>>y;
if(!vis[a] || !vis[b])
{
cout
