liouzhou_101是一名資料結構(数据结构,data structure)愛好者,他與序列有著不解之緣。
第0天morris1028送了他一個序列。他非常喜歡這個序列,他從第一天開始,每天都會對他的序列進行且僅進行一次操作。假設當前的操作是第d(d>=1)天的操作。令L[d]表示第d天序列在被操作之前的長度(L[d]>=1)。
操作有以下5種:
0 k 将整个序列变回第k天的序列 0<=k<d
1 x v 在序列第x个位置后面插入一个权值为v的数 0<=x<=L[d] 1<=v<=100000
2 x 删除序列第x个位置的数 1<=x<=L[d]
3 x v 将序列第x个位置的数改为v 1<=x<=L[d] 1<=v<=100000
4 x y k 询问第x个位置和第y个位置之间所有数中第k小的数 1<=x<=y<=L[d] 1<=k<=y-x+1
然而,他太喜歡這個序列了,以至於他做完操作之後只顧著欣賞整個序列,忘了去計算一些操作的答案。可是這些答案對他而言非常重要,現在他想請你幫他算一算。
第一行是一個正整數n,表示第0天序列的長度,即L[0]。
第二行是n個以空格隔開的正整數,a[1],a[2],...,a[n],表示第0天的這個序列每個位置上的數字,每個數字都在1到100000之間。
第三行是一個正整數q,表示接下來有q天。
接下來q行,第d行表示第d天的操作信息,第一個數字t表示操作類型(0~5),然後對不同的操作,格式參見題目內容。為了模擬實際情況,在第d天,你並不可能知道第d+1天的操作,所以輸入數據中對操作信息進行了加密,就是輸入中的所有數,並不是真正的信息,如果你輸入了一個數字K,事實上你要把K理解成K xor ans,其中xor是異或操作,ans是最近一次詢問的答案,如果到現在為止沒有被詢問過,則我們不把信息加密,即ans=0。
輸入保證合法。
5 1 2 3 4 5 5 4 1 5 2 3 0 3 6 3 7 0 1 0 5 0 4 3
2 1 2
輸入範例解密后應該是:
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」
|