ABC337
其实就是构造出最小的方案。
我们把二进制第 \(i\) 为 \(1\) 的所有数放到一起查询。
所以如果第 \(i\) 次询问的回答是 \(1\) 那么有问题的饮料二进制下的第 \(i\) 为就是 \(1\)。
所以就可以计算出有问题的饮料的编号了。
暂时没写
学习_ChiFan_ 的题解。
考虑从小到大枚举 \(w\),顺便加入所有的 \(v\)。于是我们直接讨论 \(u\),\(v\) 和 \(w\) 的位置关系。
如有一个在子树内一个在子树外或在不同的子树内,但是我们发现怎么样都是一个子树或一个子树减掉一个子树或全局减掉一个子树内的 \(v\) 给 \(u\) 做贡献。
所以我们直接用树状数组维护 dfs 序即可。