「UOJ751」神隐
作者:互联网
题目
点这里看题目。
分析
交互题好难啊.jpg
我们先来分析一下怎么才能找出来一条边。假如编号为 \(k\) 的边被加入到 \(G\) 中的询问集合为 \(Q_k\),则询问必须满足对于任意的存在公共点的 \(e_1,e_2\),\(Q_{e_1},Q_{e_2}\) 之间不存在包含关系。否则我们无法准确地确定边的端点。
但是,我们并不知道哪些边存在公共点,所以对于任意两条边,它们的 \(Q\) 都必须不同。
这个构造还是比较经典的。第一种方法是二进制分组,需要 \(2\lceil\log_2(n-1)\rceil\) 次询问;第二种方法是重标号(所有的标号所含的 \(1\) 的位数相同)之后二进制分组,需要的询问次数略大于 \(\log_2(n-1)\)。
Remark.
如果分析不出来这里的性质,该怎么想到二进制分组?
数据范围明示 \(\log n\) 次询问,能够达到这个询问次数的策略不多,其实就只有:二分搜索、分治、随机化折半、二进制分组等等。全部试一遍,只要不搞忘就不怕想不到
标签:const,神隐,rep,UOJ751,int,MAXN,hgst,col 来源: https://www.cnblogs.com/crashed/p/16572732.html