ferinの競プロ帳

競プロについてのメモ

要復習

ARC062 E - AtCoDeerくんと立方体づくり / Building Cubes with AtCoDeer

問題ページ 解法 立方体の上の面と底面を決めると残りの側面に来る面の色配置は一意に定まる。色の配置がvのタイルが何枚あるか?という情報を計算しておけば何通りあるかは求めることができる。C(N,2)通りを全通り試すことで答えが求まる。 ただし、回転等…

ARC084 E - Finite Encyclopedia of Integer Sequences

問題ページ 解法 まずKが偶数ならば(K/2, K, …, K)となる数列が答えになることがわかる。よってKが奇数のものについてのみ考える。 ナイーブな解法として答えの数列でi番目で数列のa番目をつくるにはi番目の数字が一意に定まるとして前から決めていくような…

ARC065 E - へんなコンパス / Manhattan Compass

問題ページ 解法 まずマンハッタン距離なので45度回転しチェビジェフ距離に変換しておく。 コンパスの移動で穴2つの距離が変わることはない。したがって穴aと穴bの距離Dと等しい穴の組が何個あるのかを考えればよい。穴の組O(N^2)個について全て考えるのは不…

みんなのプロコン 2019 F - Pass

問題ページ 解法 dp[i][j] = (結果の列のi+j番目まで見たときに赤をi個、青をj個使っているとき何通りあるか) でDPをする。DPの遷移は dp[i+1][j] += dp[i][j] 次に赤を置くことが可能 dp[i][j+1] += dp[i][j] 次に青を置くことが可能 の2通りになる。次に赤…

第5回 ドワンゴからの挑戦状 本選 C - Interval and MST

問題ページ 解法 boruvka法を使って最小全域木問題を解く。各連結成分から他の連結成分へつなぐ最もコストが小さい辺をO(N)やO(NlogN)程度で求められるときに有効な方法になる。ある区間が他の区間と交差するのは4パターンに分類できる。 その区間の右側と他…

CODE FESTIVAL 2017 qual C D - Yet Another Palindrome Partitioning

問題ページ 解法 回文が成り立つ⇔奇数個の文字が1種類以下 である。回文が成り立つかの判定を高速にするため hash = (文字種iが奇数個だったらiビット目を1とする) となるハッシュを考える。このハッシュを使うと 回文が成り立つ⇔1のビットの数が1個以下 と…

ARC072 E - Alice in linear land

問題ページ 考えたこと まずどんな動きをするのか試してみる 進行方向が反転だったりを考える必要はなくて目的地までの距離だけ使えばよさそう 現在の目的地までの距離をXでd[i]を入力するとX' = min(X, abs(X-d[i])) に変化する Xは単調に減少していくいう…

AGC028 B - Removing Blocks

問題ページ i番目がカウントされる回数= sum_{j=1}^N (j番目を取り除く時にi番目と連結なパターン数) までは考察できたけど連結なパターン数を求めるパートで無限に詰まって終了した。数え上げで全通りの数え上げは実質期待値と同じなので確率っぽい考え方が…

AGC026 B - rng_10s

問題ページ 思考過程 よくわからないのでサンプルを試してみる i日目の昼にxで回ってきたら次に補充されるタイミングには x%b 個になってそう x%b > c であれば補充できず、mod bなのでb未満なので続けられなくなる よくよく考えてみると b > c のときとかが…

AOJ2236 Rabbit Plays Games!

問題ページ Rabbit Plays Games! | Aizu Online Judge 考えたこと 項目が多すぎるのでまとめたい まず敏捷sについて関係あるのは自分より早く動くか遅く動くかだけ 敏捷の差とか考えたくないので無視したい 戦闘前に自分より早く動くやつにダメージをもらう…