physics0523's 精進ログ

主に競プロの面白い問題の解法をメモします

DPまとめコン ログ

3:59 E<体感400>
dp[価値]=その価値を達成する最小コスト。
https://atcoder.jp/contests/dp/submissions/3936145

9:44 H<体感400>
所謂11解法。dp[a][b]=(上+左)。
https://atcoder.jp/contests/dp/submissions/3936760

20:03 C<体感300>
dp[日付け][直近の操作A]={直近の操作がAのときの最大価値}。
https://atcoder.jp/contests/dp/submissions/3937777

41:39 Q<体感700>
遷移が範囲になるので遅延セグ木dp。
dp[高さ]={次にその高さの花を持ってきた場合の最大価値}。
https://atcoder.jp/contests/dp/submissions/3939597

52:18 G<体感400>
あるノードに入る辺の遷移が全て終わったらそのノードをqueueに追加。
dp[ノード]={そのノードが末尾になる最長パス}。
https://atcoder.jp/contests/dp/submissions/3940415

57:57 D<体感300>
dp[重さ]=その重さを達成する最大価値。
https://atcoder.jp/contests/dp/submissions/3940825

72:51 K<体感500>
石の数が少ないほうからWLアルゴリズム。遷移先がすでに先手必勝なら遷移しない。
dp[石の数]=勝つ方。
https://atcoder.jp/contests/dp/submissions/3941825

100:25 M<体感700>
遅延セグ木じゃんとか思ったけどよくよく考えると要らなかった。
遅延セグ木はlogが入るので結構重い。
dp[残りの飴の数]={パターン数}、但し遷移が範囲なのは累積和(imos法)で解決。
https://atcoder.jp/contests/dp/submissions/3943519

127:19 R<体感800>
K=10^18、N=50の時点でとても匂うがダブリング。こういうのすき。
doubling[長さ2^k][パスの始点][パスの終点]={パターン数}
求解するときにはres[始点][現時点での終点]で合成していく
https://atcoder.jp/contests/dp/submissions/3944917

138:01 I<体感400>
dp[今までに表が出た枚数]={そうなる確率}
遷移はdp[i+1]+=dp[i]*p;dp[i]*=(1-p);みたいにする
https://atcoder.jp/contests/dp/submissions/3945393

145:26 B<体感300>
dp[今いる石]={その石にいるための最小コスト}
https://atcoder.jp/contests/dp/submissions/3945722

200:57 A<体感200>
BのK=2固定版
https://atcoder.jp/contests/dp/submissions/3947905

236:41 P<体感600>
木DP。葉からそのノードを黒,白で塗ったそこから下を塗るパターン数を記録
(ABC036-D(全く同じ)をライブラリにしていたので本当に貼るだけでした…)
https://atcoder.jp/contests/dp/submissions/3948998

243:48 S<体感600>
まず、下n桁を自由に決めていい場合を予計算して、最後に上n桁がこれで下は自由
みたいな状況ごとにまとめていきます
さっきので吹っ切れてTDPC-Eを貼りましたが入力順が逆でした
と思いきやTDPC側のテストが緩く嘘が通っていたようなのでめっちゃデバッグしました
https://atcoder.jp/contests/dp/submissions/3949507

278:58 F<体感500>
復元でDPテーブル使ったらめっちゃバグった…なんでや…
dp[Sの使用済み文字数][Tの使用済み文字数]={LCSの長さ}
https://atcoder.jp/contests/dp/submissions/3950030

 

15完で多分丁度200位。ただもっと拾えるところはあった気がする。

うまく戦ったところもあるが、後半ぐずり気味だったのが反省点。