pitsuの精進日記

精進の様子を垂れ流しています

今日の精進 2020/06/01

昨日のF

一か所から伸びる遷移は3本あって

1.部分集合に含めない

2.部分集合に含めるけど足さない

3.部分集合に含めるし足す

一つ目と二つ目はstartとgoalが一緒だからdp[i+1][j] += dp[i][j]*2でいいのか

atcoder.jp

 

 

HCPC個人戦バチャ

Aの1完....

A:スタート地点からいけるBFSで自分の位置より一番低いところに行くようにする

https://kenkoooo.com/atcoder/#/contest/show/3bfedc78-18e0-4104-bc02-01c2d7a8097a

 

 

さっきのバチャのB

どっちで終わるか判定して各コマを除いたときゲームは終了しているか全探索

atcoder.jp

 

 

青~黄diffバチャ

Aの1完

A:dp[i][m][bit]で

i番目まで

最後に見た種類はm種類目

今まで見たものはbitが立ってるもの

https://kenkoooo.com/atcoder/#/contest/show/a5a42f33-d776-4588-8c57-03aa6faa9887

 

 

復習

頂点を二部グラフに分けたとき、塗った結果は一意に定まる

2部グラフに分けた後に、間にある辺は全部塗っても奇数長の閉路はできない

なので絶対間の辺はオレンジに塗る

間の辺を繋げても連結になってないものは同じグループ内の辺を繋げても閉路は絶対できない

なので塗らなきゃいけなくなって二部グラフ崩壊

だから頂点を二部グラフに分けたときに連結になってるものを数え上げて最後に/2

atcoder.jp

 

 

これはNim数に帰着できるらしい

この記事がわかりやすかった

https://www.creativ.xyz/grundy-number-1065/

atcoder.jp