交互题

Interactive LowerBound

先随机 \(1000\) 次找到 \(\le x\) 的最大值。

然后不断跳就可以了。

期望跳 \(50\) 次就可以了,所以算法较为优秀。

Submission

APIO2016 最大差分

Subtask 1:

每次询问 \([1+i,n-i+1]\),询问 \(\left \lceil \dfrac{n}{2} \right \rceil\) 次就可以得到 \(a\) 数组。

Subtask 2:

先求出 \(a_1,a_n\)

发现答案的最小值为 \(\dfrac{a_n-a_1}{n-1}\)

所以按这个大小分块,块内没有答案,对 \(\min - \operatorname{premax}\) 取答案即可。

这样的 \(M=(n+1)+(n-1)+(n-2)=3n-2\) 合法。

Submission

NOI2019 I君的探险

Sub1:\(n=3\)

按照样例模拟即可。

Sub2:查询次数很多。

暴力修改每一个 \(<n-1\) 的点,查看每个点相较于之前的状态是否有改变。

Sub3:每个点度数为 \(1\)

二进制分组。

\(i\)\(p_i\) 互相连边。

如果 \(i\) 的二进制 \(j\) 位为 \(1\),则我们修改 \(i\)

  • 如果一个的二进制位为 \(1\) 并且查询结果和之前相同(自己操作了一遍),则 \(p_i\) 的二进制下 \(j\) 为也为 \(1\)
  • 如果一个的二进制位为 \(0\) 并且查询结果和之前不同,则 \(p_i\) 的二进制下 \(j\)\(1\)

Sub \(1\sim 3\)

剩下的不会做。

posted @ 2024-05-16 23:33  WhisperingWillow  阅读(4)  评论(0编辑  收藏  举报