社区讨论
关于题解虚树求法的正确性?
P2495【模板】虚树 / [SDOI2011] 消耗战参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lo143b7w
- 此快照首次捕获于
- 2023/10/22 14:52 2 年前
- 此快照最后确认于
- 2023/11/15 21:51 2 年前
题解中有很多建虚树的方法,例如:
CPPvoid push_stk(int x){
if(topp==1) return (void)(stk[++topp]=x);
int lca=LCA(x,stk[topp]);
if(lca==stk[topp]) return;
while(topp>1&&dfn[stk[topp-1]]>=dfn[lca]) G[stk[topp-1]].push_back(stk[topp]),--topp;
if(stk[topp]!=lca) G[lca].push_back(stk[topp]),stk[topp]=lca;
stk[++topp]=x;
}
但是这样建成的虚树,可能不会包含所有关键节点,
如本题的第二个询问:关键节点为 。
但以上面的写法,建出来的虚树节点只有 。
为什么虚树没有建完全,却能A呢?是本题的特性吗?
回复
共 2 条回复,欢迎继续交流。
正在加载回复...