Codeforces Round #557 (Div. 1) 簡要題解

Codeforces Round #557 (Div. 1) 簡要題解

codeforceside

A. Hide and Seek

枚舉起始位置\(a\),若是\(a\)未在序列中出現,則對答案有\(2\)\(3\)的貢獻。spa

\(a\)在序列中出現,找到\(a\)第一次出現的位置\(x\),則說明在\(x\)位置以前須要把\(a\)移動到\(a+1\)\(a-1\)處,只須要判斷\(x\)後面有沒有\(a+1\),有沒有\(a-1\)。對每種數字記錄第一次和最後一次出現位置便可。
codecode

B. Chladni Figure

旋轉的角度\(k\)必定是\(n\)的約數。暴力枚舉約數判斷便可,複雜度\(O(n\sigma_0(n))\)
code字符串

C. Thanos Nim

結論是後手必勝當且僅當局面中的最小值個數超過一半,由於當最小值個數超過一半時操做必改變最小值,且操做後最小值個數不超過一半,而在最小值個數不超過一半時顯然存在一種操做策略能夠不改變最小值,而使操做後最小值個數超過一半。
codeget

D. Palindrome XOR

\(n\)爲讀入的字符串長。顯然\(b\)的長度就是\(n\),且\(a\)的長度小於\(n\)io

枚舉\(a\)的長度\(m\),這樣就一共有\(n+m\)\(01\)變量待肯定,這\(n+m\)\(01\)變量之間存在一些相等或不等的關係,同時還有一些變量被強制賦值,能夠新建兩個點表示數值\(0/1\)後,把限制關係視做邊(相等邊權爲\(0\),不等邊權爲\(1\))建出圖,若圖中不存在奇環則答案爲\(2\)的連通塊個數減\(1\)次方,不然答案爲\(0\)class

複雜度\(O(n^2)\)
codetest

E. Rainbow Coins

對每一個\(i\)求出是否和\(i-1\)\(i+1\)相同(\(2\)次詢問),能夠將序列分割成若干段,保證相鄰兩端顏色不一樣。接下來須要求每一段的顏色,假設第一段的顏色爲\(0\),第二段的顏色爲\(1\),而後就只須要知道第\(i\)段和第\(i-2\)段的顏色是否相同就好了(\(2\)次詢問)。共計\(4\)次詢問。
code變量

F. Zigzag Game

首先按照劇本咱們應該選\(\text{Bob}\),由於\(\text{Bob}\)纔是實際意義上的先手。im

這是一個二分圖博弈的模型,這個模型中關鍵的一點在於:求出二分圖某個知足必定條件的匹配,接着先手就只要按照劇本沿匹配邊走就能\(\text{win}\)了。

考慮這個匹配須要知足什麼樣的性質。不失通常性地,假設\(\text{Alice}\)選擇了\(\text{Increasing}\)並選擇了一個左側節點。不是這種狀況的話能夠經過將邊權取反到達相同的結果。

假設博弈過程當中存在連續的三次操做\(w \to x \to y \to z\),其中\(w \to x\)\(y \to z\)\(\text{Bob}\)走的,也即,\((w,x),(y,z)\)兩條邊在匹配中。此時咱們的要求是在\(\text{Alice}\)走到\(y\)後,\(\text{Bob}\)可以走到\(z\),也即\(val(x,y)>val(y,z)\),固然這裏對\(val(x,y)\)也是有限制的,即\(val(x,y)>val(w,x)\)

可知上述限制是對匹配的惟一限制。也就是說,匹配不合法當且僅當存在\((w,x)\in P,(y,z)\in P\)使得\(val(w,x)<val(x,y)<val(y,z)\)

這是一個穩定婚配的模型,左側的每一個點對右側點的偏好值與邊權負相關,右側的每一個點對左側點的偏好值與邊權正相關。求出一組穩定婚配後按照劇本走就行了。

code

相關文章
相關標籤/搜索