专栏文章

AT_kupc2020_j

AT_kupc2020_j题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mioyw8oi
此快照首次捕获于
2025/12/03 03:24
3 个月前
此快照最后确认于
2025/12/03 03:24
3 个月前
查看原文
考虑 n=4n=4 怎么做。
(1,2,3),(1,2,4),(1,3,4),(2,3,4)(1,2,3),(1,2,4),(1,3,4),(2,3,4) 分别进行询问,可以发现一定能得到两个不同的中位数 L,RL,R,令 L<RL<R,则有一定有两组询问回答为 LL,两组为 RR
然后你可以发现对于 ii,在所有包含 ii 的询问的回答只能是两种情况:两个 LL 和一个 RR,两个 RR 和一个 LL,如果出现两个 LL 则有 aiLa_i\le L,反之如果出现两个 RR 则有 aiRa_i\ge R。证明可以把所有情况列出来()
显然存在排列 pp 满足 ap1<L,ap2=L,ap3=R,ap4>Ra_{p_1}<L,a_{p_2}=L,a_{p_3}=R,a_{p_4}>R。不妨令满足 aiLa_i\le L 的两个 iil1,l2l_1,l_2,满足 aiRa_i\ge R 的两个 iir1,r2r_1,r_2,根据前面的结论我们可以通过这些询问找出 l1,l2,r1,r2l_1,l_2,r_1,r_2
然后你发现 l1l_1l2l_2 是无法通过询问 11 区分的,r1r_1r2r_2 同理,那么就用两次询问 22 区分即可。

考虑 n>4n>4
同样的,我们可以通过询问 11 知道 l1,l2,r1,r2l_1,l_2,r_1,r_2L,RL,R
对于 ii,进行询问 (l1,r1,i)(l_1,r_1,i),令回答为 ss,如果 L<s<RL<s<R 则说明 ai=sa_i=s
如果 sLs\le L,则再进行询问 (l2,r2,i)(l_2,r_2,i),令回答为 tt,如果 s<ts<t,有 al1s<t=al2a_{l_1}\le s<t=a_{l_2},根据前面的结论 al2=La_{l_2}=L。否则有 al2t<s=al1a_{l_2}\le t<s=a_{l_1},有 al1=La_{l_1}=L
sRs\ge R 同理。
假设 s<t,sLs<t,s\le L,现在可以发现我们无法通过询问 11 知道 al1a_{l_1}aia_i,但是知道 max(al1,ai)=s\max(a_{l_1},a_i)=s,然后可以发现 al1,ai,ar1a_{l_1},a_i,a_{r_1} 的中位数和 al1,ai,ar1a_{l_1},a_i,a_{r_1} 的中位数为 ss,这又是前面的形式,令 LsL\gets s 即可。
s>ts>t 的情况和 sRs\ge R 的情况同理。
最后你发现还有 l1,l2,r1,r2l_1,l_2,r_1,r_2 未确定,这个时候就用两次询问 22 确定。

评论

0 条评论,欢迎与作者交流。

正在加载评论...