Xenia 是一位程式設計師,他有 26 個兄弟姊妹,分別為 Aenia, Benia, $\dots$, Yenia, Zenia, 和 Willy。
有一天,Xenia 的妹妹 Yenia 買了一棵有 $N$ 個節點的樹,樹上的點編號從 $1$ 到 $N$。
樹上的點分別有紅、藍兩種不同顏色:其中,如果 $c_i = 1$,則點 $i$ 是藍色的,否則點 $i$ 為紅色。
樹上總共有 $N - 1$ 條邊,每條邊的長度均為 $1$,而且從樹上任一個節點開始出發,都能透過一條或多條邊走到任意其他節點。
Yenia 是個怪人,所以他定義樹上兩個點 $u, v$ 的距離為 $u$ 到 $v$ 的最短路徑上需要經過的邊的數量。
怪人 Yenia 想要很快的一直執行這兩種操作:
注意:因為 Yenia 非常心急,所以本題為強制在線,請特別注意輸入格式
第一行輸入兩個整數 $N, K$,其中 $N$ 為樹上的節點個數,$K$ 的意義在接下來會說明。
第二行輸入 $N$ 個整數 $c_1, \dots, c_N$,其中如果 $c_i = 1$,則點 $i$ 是藍色的,否則點 $i$ 為紅色。
接下來的 $N - 1$ 行中,每行有兩個正整數 $a_i, b_i$,代表樹上有一條邊連接 $a_i$ 跟 $b_i$。
接下來一行有一個正整數 $Q$,代表 Yenia 想要執行的操作數量。
接下來的 $Q$ 行中,每一行會有兩個數字 $\text{op v}$,其中 $v$ 不是真正的操作內容。
假設上一個詢問的答案為 $\text{last}$(若之前沒有詢問,則為 $0$),令 $x = (\text{last} \cdot K + v - 1) \pmod{N} + 1$,則 $x$ 為這筆操作的真正內容。
接下來:
對於每個 $\text{op} = 2$ 的詢問,請輸出一行數字,代表這筆詢問的答案,每兩筆詢問間請換行。
5 0 0 1 0 1 0 1 2 1 3 3 4 3 5 7 2 5 1 2 2 1 1 5 2 4 1 4 2 5
3 2 2 0
5 1 0 1 0 1 0 1 2 1 3 3 4 3 5 7 2 10 1 4 2 3 1 8 2 7 1 7 2 8
3 2 2 0
8 0 1 0 0 0 0 0 1 0 5 4 7 1 4 8 1 8 5 3 6 7 2 4 12 1 1 1 4 2 4 1 3 2 6 1 4 2 8 1 2 2 3 2 8 2 1 1 7
3 6 3 5 3 4
什麼是強制在線?在輸入限制中,你需要得知一筆詢問的答案,才能知道下一筆詢問的數字為何,
也就是說在接收到詢問後,你需要馬上回答。
在第一、二、三子問題中,$K = 0$,也就是說輸入的 $v$ 跟真正操作的 $x$ 是一樣的。這代表你在回答任何詢問前就已經知道每一筆操作的資訊。因此,在這三個子問題中,你可以離線處理這些詢問。
| No. | Testdata Range | Constraints | Score |
|---|---|---|---|
| 1 | 0~2 | 範例測資。 | 0 |
| 2 | 3~6 | $K = 0, N, Q \leq 7 \times 10 ^ 4, \forall 1 \leq i < n, u_i = i, v_i = i + 1$。 | 0.49 |
| 3 | 7~31 | $K = 0, N, Q \leq 2000$。 | 9.51 |
| 4 | 3~6, 32~52 | $K = 0, N, Q \leq 7 \times 10 ^ 4$。 | 40 |
| 5 | 0~76 | 無特別限制。 | 50 |