Codeforces Round #732 (Div.1) 題解
實在是打擊人信心的一場比賽啊……一不注意就掉了 50+ 分,rating 沒了啊/ll/dk/wq/kk
A
Weak pretest!!!!!11 /fn/fn/fn
一個很顯然的注意點是在交換前後,對於每一種數 \(c\) 而言,奇數位上的 \(c\) 中朝右的人數的奇偶性不會發生變化,偶數位上的 \(c\) 中朝右的人數的奇偶性也不會發生變化,因此我們只需檢驗排序前後奇偶位上數的組成是否相同即可,時間複雜度 \(Tn\log n\)。
現場降智選手,指我無疑了
B
首先根據手玩樣例法可以發現 \(\dbinom{13}{5}=\dbinom{13}{8}=1287,\dbinom{13}{4}=\dbinom{13}{9}=715\)
證明?別問我,我什麼也不知道
C
首先記目前沒有確定是否被劃分進集合的排列的集合為 \(S\),那麼我們列舉 \(S\) 中每一個排列 \(p\),如果排列 \(p\) 中存在一個位置滿足 \(S\) 中沒有其他排列和它值相同,那麼根據題目的性質顯然它只能在前 \(n\) 個排列中,與此同時我們把與它有重複值的排列設為“不在前 \(n\) 個排列中”並從 \(S\)
時間複雜度 \(n^3\)。
D
我們考慮求出每個排列所有時刻座標的和 \(s1_i\) 以及平方和 \(s2_i\),記 \(S=\sum\limits_{i=1}^mv_i,T=\sum\limits_{i=1}^mv_i^2\),那麼如果沒有錯誤元素,一定有 \(s1_{i+1}-s1_i=S\)
一式加三式減兩倍的二式,得
\[T=\dfrac{s2_{t-1}+s2_{t+1}-2s2_t}{2} \]由此可以確定第 \(i\) 行所有座標的和及平方和,這樣我們列舉修改的元素是哪個,根據第 \(i\) 行座標的和求出被改前的元素,並 check 平方和是否滿足要求即可。
時間複雜度 \(nm\)。