傳送門
賽時沒打,賽後補的。
D題過的太慢,估計賽時過不了。
A
每行裡隔 \(k\) 個放一個,最少 \(\min(k, m)\) 種。列同理,因此答案為 \(\min(k, n) \min(k, m)\)
B
如果 \(a\) 和 \(b\) 完全相同或者 \(a\) 倒過來之後和 \(b\) 完全相同則愛麗絲獲勝。
C
只需要判斷 \(s\) 是否能在每個圓到達 \(t\) 之前到達即可。
D1
對於排列中相鄰的兩個數 \((i, j)\),\(v_i\) 表示對於 \(p_i, p_{i + 1}\) 是否合法,若 \(i\) 是 \(j\) 的父親,或 \(i\) 在 \(j\) 父親的子樹裡,\(v_i = 1\)。當 \(\sum v_i = n-1\) 的時候這個排列合法。若 \(x\) 是 \(y\) 的父親,當且僅當 \(x = y / 2\),若是後者可以從 \(x\) 往上跳。時間複雜度 \(O(n + q\log_2n)\)。
D2
上面演算法的時間複雜度是對的,存一下邊然後查詢的時候倍增跳就可以。