Baby Stepsなブログ

競プロとか。間違ったこと書いてあったら@pi0nep1oneにご連絡ください。

動的計画法

ABC 200 D - Happy Birthday! 2 をDPで解く

atcoder.jp 問題 N個の要素からなる集合A の2つの異なる部分集合で和の mod 200 の値が等しいものが存在するかを判定し、存在する場合はその2つの集合を出力せよ。 制約 公式解説 公式解説は、鳩ノ巣原理により の場合は必ず解が存在することから、 の範囲に…

ABC 185 E - Sequence Matching 解説

問題 atcoder.jp 前提 最長共通部分列問題(Longest Common Subsequence) 解説 最長共通部分列問題(Longest Common Subsequence)が解法の基盤になっていると思った。 LCSのDPでは、複数の列における部分列の長さの最大値を管理するが、この問題では不一致…

ABC 178 C - Ubiquity 解説 【別解】

atcoder.jp 解説 想定解は包除原理だが、Nが小さいので動的計画法でも間に合う。 dp[i][j][k] := i桁目まで確定していて、0を使ったかがj、9を使ったかがkである状態のときの通り数 dpテーブルをこのように定義すると、テーブル更新にかかる計算量は、O(N * …

EDPC J - Sushi

atcoder.jp 期待値DPの問題 難しかったので、要復習としてメモ. 実装は以下の記事を参考にほぼ写経させていただきました. www.hamayanhamayan.com qiita.com 実装 #include <bits/stdc++.h> using namespace std; #define rep(i, m, n) for (int i = (int)(m); i < (int)(</bits/stdc++.h>…

Codeforces Round #597 (Div. 2) C. Constanze's Machine 解説

codeforces.com DPに関して学びになる問題だったので、メモとして残す. 漸化式 dp[i] := s[i]まででn or uが連続する区間においていたずらできる回数 この問題で漸化式を上記の様に定義すると、dpテーブルの遷移はフィボナッチ数列と同じになることに気付く…

KUPC 2019 F - カズマ王国の陥落 解説

atcoder.jp DPについて学びになる問題だったので、メモとして残す. 考えたこと DPで解く 実装 参考にさせていただいた実装 考えたこと 最初考えたのは、各拠点のモンスターは、自身が攻撃できる街の中で勇者の撃退可能数が最も少ない街を貪欲的に選んでいけ…