struct node1
{
int xx,yy,lcaa;
bool operator<(const node1 &x)const
{
return dep[lcaa]>dep[x.lcaa];
}
};
multiset <node1> ss;
...
if(op==2) cin>>u>>v,ss.erase(ss.find({u,v,lca(u,v)}));
以上代码是错误的,因为重载运算符时没有正确判相等,此时 *ss.find({u,v,lca(u,v)}) 不一定为 {u,v,lca(u,v)}。。。。楼主真是唐完了。