题目 感觉这题拿国二难度很大啊,要不是我做过这个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