題目鏈結
艮為山,動靜得宜,適可而止;兌為澤,剛內柔外,上下相和。有乙個棋子放在一顆有根樹的根上。你和算卦先生輪流把這個棋子向所在點的其中乙個兒子移動(只能移動到兒子)。不能再移動就算失敗(即棋子所在節點沒有兒子)。艮卦:兼山,艮;君子以思不出其位。財帛常打心頭走,可惜眼前難到手,不如意時且忍耐,逢著閒事休開口。
兌卦:麗澤,兌;君子以朋友講習。這個卦象真可取,覺著做事不費力,休要錯過這機關,事事覺得隨心意。
算卦先生來問你,如果你先手,你是否有必勝策略?
第一行乙個數 t,表示有 t 組資料。
接下去每組資料的第一行有兩個數 n,r ,表示樹有 n 個節點,其中 r 為根節點編號(從 1 開始編號)。
接下去 n - 1 行每行兩個數字 u, v ,表示點 u 和 v 之間有一條邊。
每組資料輸出一行,"gen"
\texttt
"gen"
表示先手有必勝策略,"dui"
\texttt
"dui"
表示沒有。
2
3 11 2
2 35 4
1 21 3
3 44 5
dui
gen
簡單的樹上博弈,先手如果有 k
kk 個選擇,當這 k
kk 種選擇都會使後手獲勝,則先手必敗,如果有一種情況能使先手獲勝,則先手必勝,用 dfs 在樹上轉移狀態即可,ac**如下:
#include
using
namespace std;
typedef
long
long ll;
const
int n=
1e4+5;
int t,n,s,u,v,vis[n]
;vector<
int>g[n]
;void
init()
bool
dfs(
int u)
}return flag;
}int
main()
if(dfs(s)
)printf
("dui\n");
else
printf
("gen\n");
}}
牛客小白月賽 黑黑白白(博弈)
只要子兒子存在乙個p,那麼當前這個節點就為n,反之如果兒子全部都是n,那麼當前節點就為p,dfs就可以解決,我在初始化vector的時候少打了乙個 wa兩次,還是太粗心 include include include include include include define ll long lo...
牛客小白月賽13 F題
小a這次來到乙個景區去旅遊,景區裡面有n個景點,景點之間有n 1條路徑。小a從當前的乙個景點移動到下乙個景點需要消耗一點的體力值。但是景區裡面有兩個景點比較特殊,它們之間是可以直接坐觀光纜車通過,不需要消耗體力值。而小a不想走太多的路,所以他希望你能夠告訴它,從當前的位置出發到他想要去的那個地方,他...
牛客小白月賽43 F 全體集合
題目鏈結 f 全體集合 給出 n 個點 m 條邊的無向圖,給出 k 個點上分別有乙個人,每個人一次只能走到乙個相鄰的節點,問有沒有一種可能讓這些人都走到乙個點。考慮使用二分圖染色 如果染色成功,說明這個圖是二分圖,那麼對於不同顏色的點永遠不可能走到一起,題目也說了這個圖是聯通的,所以說如果這 k 個...