kwm_t

kwm_tのメモ

PAST11

■A - うさぎとかめ
分母を払う
■B - 2文字
mapで管理
■C - オーダー
long longでやれ
■D - 似ている文字列
dsu
■E - 変わった数列
二分探索
■F - シューティングゲーム
シュミレーションする。
■G - 木の判定
dsu
■H - 2つのナップサック
dp[i][j]:=aがiでbがjのmax
■I - お片付け
dp[i][j][k][l]:=人の位置と荷物の位置でbfs
■J - 完全週休二日制
面倒だけどやるだけ
0001/01/01からの経過日数は適当にライブラリにした
■K - 部分列
LCS的なノリでdpここまでで最難
■L - だいたい最長共通部分列
これぞLCS Kほうがよっぽど難しい
■M - 逆転
(n-1,n)->(n,n)->(n+1,n)とその対称が起きるときに逆転が起きる。
(n-1,n)に来る確率はbinom(2*n-1,n)/2^(2*n-1)なので前計算をすればいい
逆元の計算に毎回logを載せても通る
■N - 壁の建設計画
最小カット典型。どの辺がカットされたかは、flowを流したあとにmin_cutを呼べばいい。
類題;;ABC239 G - Builder Takahashi
検索用ACL mf_graph 復元
■O - 面積クエリ
実装がとても面倒。セグ木するだけ