交互题 总结

写在前面:

于$2020$年$1$月$13$日开此博文

距离$NOIWC2020$仅剩$17$天

即时战略

在我的LCT专题总结里

最大差分

子任务一:

可以不断的缩小左右端点来确定未知的两个最值

子任务二:

显然这种情况下的最小答案为

$$S=\left \lfloor \frac{a[n]-a[1]}{n-1} \right \rfloor$$

所以当我们以$S$为块长分块时

一个块内的元素不会对答案造成贡献

所以只需要对每个块进行一次操作便可以在块之间更新答案了

最终询问数

$$Q=n+n-1+n-2$$

$S$用向下取整会$PC89pts$

向上取整就可以$A$了

小修和小栋猜♂数字

发现对于一个序列

我们最多能问出$n-4$个位置的值

剩下的四个便是最值和次值

通过$4$次询问可以把他们划分成$2$个集合

对于最值我们什么也知不道

对于次值可以知道值是多少但是无法确定它的位置

那么考虑维护$4$个位置分别是最值和次值的位置

同时维护次值的大小$L,R$

每次加入一个位置$i$时

从左右集合各取一个和$i$进行询问,设答案为x

$1>x\in[L+1,R-1]$

$a[i]$一定是$x$直接回答

$2>x=L$

那么从左集合选出的位置一定对应着次值,所以回答它并从左集合中把它删去

之后用左集合里另一个位置,$i$和右集合的一个位置进行询问

得到新的次小值

$3>x<L$

和上面的情况差不多不再赘述

posted @ 2020-01-15 19:45  ATHOSD  阅读(175)  评论(0编辑  收藏  举报