Codeforces Round #720 (Div. 2) C. Nastia and a Hidden Permutation 交互
傳送門(mén)
文章目錄
- 題意:
- 思路:
題意:
給你一個(gè)序列ppp長(zhǎng)度nnn,每次可以執(zhí)行兩個(gè)種詢問(wèn):
t=1max(min(x,pi),min(x+1,pj))t=1\ \ max(min(x,p_i),min(x+1,p_j))t=1??max(min(x,pi?),min(x+1,pj?))
t=2min(max(x,pi),max(x+1,pj))t=2\ \ min(max(x,p_i),max(x+1,p_j))t=2??min(max(x,pi?),max(x+1,pj?))
詢問(wèn)操作不能超過(guò)?3?n2?+30\left \lfloor \frac{3*n}{2} \right \rfloor+30?23?n??+30次。
n<=1e4n<=1e4n<=1e4
思路:
交互題看到操作不能超過(guò)?3?n2?+30\left \lfloor \frac{3*n}{2} \right \rfloor+30?23?n??+30的時(shí)候容易想到通過(guò)?n2?\left \lfloor \frac{n}{2} \right \rfloor?2n??次操作詢問(wèn)出某個(gè)值,讓后再通過(guò)n?1n-1n?1次操作詢問(wèn)出所有值,下面考慮如何詢問(wèn)某個(gè)值。
其實(shí)1,21,21,2操作是差不多的,我們這里利用第一個(gè)操作詢問(wèn)出來(lái)nnn的位置。從111開(kāi)始,讓x=n?1x=n-1x=n?1,每次詢問(wèn)相鄰兩項(xiàng),如果返回值為nnn的話,說(shuō)明i+1i+1i+1的位置是nnn,如果是n?1n-1n?1的話,將i,i+1i,i+1i,i+1的位置調(diào)換一下再詢問(wèn)一次看是否為nnn。當(dāng)nnn為奇數(shù)的時(shí)候,如果最后都沒(méi)找到nnn的位置,那么說(shuō)明nnn的位置在最后一位。
現(xiàn)在知道nnn的位置為pospospos,我們可以通過(guò)第二個(gè)操作詢問(wèn)出來(lái)所有值,我們讓pj=pos,x=1p_j=pos,x=1pj?=pos,x=1,讓后讓pip_ipi?為當(dāng)前詢問(wèn)的位置,返回值即為當(dāng)前位置的值。
這樣問(wèn)題就完美解決啦,總詢問(wèn)次數(shù)不會(huì)超過(guò)?n2?+n+1\left \lfloor \frac{n}{2} \right \rfloor+n+1?2n??+n+1
總結(jié)
以上是生活随笔為你收集整理的Codeforces Round #720 (Div. 2) C. Nastia and a Hidden Permutation 交互的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 吉尔吉斯坦面积有多大 吉尔吉斯斯坦的国土
- 下一篇: 可持久化Splay 学习笔记