今次srm miss了,不過Easy和Medium是想不到的容易。也好,最近的srm題越來越難,這些題目應該多出點,有時考核選手的編碼能力和速度也是很重要的。期待以後srm也會多出點這類題目。
Easy
題意﹕要求檢查給定的數列是否符合A[0]~A[a], A[c]~A[d]都是正差等差數列,A[a]~A[b], A[d]~A[N-1]是負差等差數列,A[b]~A[c]元素都是相等,其中

。枚舉即可。注意檢查邊界﹕a取值1~N-2,b取值a+a~N-2,c取值b~N-1,d取值c+1~N-2。
Medium
題意﹕給了一個

的格子,每個格子都有不同顏色的石子。現在給了

個不同的著色的格子,問有多少個不同的石子排列,使得新的排列中,每個石子與著色的格子距離與其原來排列的一致。距離函數是
)
。
問題可以看成是
pSort的變種。定義某石子的距離特徵為
)
,當中

為第i石子與第j個著子格子的距離。不同的石子i, j屬於相同的交換群,若且僅若

。因此,對於群組大小為

的則有

的排列與原來的一致。因此只需把所有不同的群組的排列數取積即可。我則用
map<vi, int>來記錄交換群的數量,有點無恥,也有點暴力,但也過了。
Practise room得688分,實際比賽應該打了7折左右,排名可以在31至249之間,可見速度與準繩度有多重要…