競技プログラミング

AOJ 2511 : 沈みゆく島

Sinking islands | Aizu Online Judge一番最初のサンプルケースを見ると、 沈む時刻が最後の方から最小全域木を構成していくと良さそう (座圧して、時刻が同じものはグルーピングしておく)。一番最初に沈むところまで終えて、 Union-Findが全部同じ親を持…

JOI 2012-2013 予選 問題4 : 暑い日々 (Hot days)

JOI 2012-2013 予選 問題4D: 暑い日々 (Hot days) - 第12回日本情報オリンピック 予選(オンライン) | AtCoderid:keidaroo さんのblogに触発されてどんなもんじゃろと解いてみました。 JOIの問題は解いたことがないので…。keidaroo.hatenablog.com 解い…

AOJ 2510 : 双子の読書感想文

Twin book report | Aizu Online JudgeDPだと思うけど大変そう。 最初rを2つ分けたときの大きいほうの最小値を求め、 余った時間に感想文を詰め込もうとしたが 無限にWAを重ねた。 半日頑張ってダメだったので諦めて解説を見る。2013/Practice/模擬国内予選/…

AOJ 2333 : 僕の友達は小さい

My friends are small | Aizu Online JudgeDPだろうなということは目星がつく。 ただ 僕は、入れられる友達がまだ残っている限り、入れるのを止めない。決して止めない。 この条件を満たすようにするにはどうするか を考える必要がある。ここで、リュックに…

AOJ 1196 : 橋の撤去

橋の撤去 | Aizu Online Judge ICPC諸島には島の数 n に対して n-1 個の橋があり,どの島から島へも, 橋を何回か渡れば到達することができるようになっている. つまり木になっている。それが分かればあとはやるだけとなる。 すべての頂点(島)を根と見な…

AOJ 1145 : 全宇宙生命ゲノムデータベース

The Genome Database of All Space Life | Aizu Online Judge構文解析の問題。 一つ困るのが繰り返しの処理。繰り返したときの文字列の長さを持っておいて、 それよりiが小さければ中の長さでmodを取って遷移し、 そうでないときはiから文字列の長さを引いて…

AOJ 2200 : Mr. リトー郵便局

Mr. Rito Post Office | Aizu Online Judge船をどこに置いておくかで結果が変わっておきそうなので、 これを状態に持ってDPするのが良さそう。あらかじめ陸路と海路で分けてワーシャルフロイド法で 各町村間の最短経路を求めておく。DPするときは船は放って…

AOJ 2444 : Substring

Substring | Aizu Online Judge制約がnもmも10^5あるので愚直解はまず通らなそう。 Suffix Arrayを合ってるか分からないけど言葉だけ思い出したが、 実装できる自信はない・・・。少し悩んだらローリングハッシュというものを思い出した。 前処理O(n)、区間…

AOJ 2441 : FizzBuzz

FizzBuzz | Aizu Online Judge大変そう・・・。問題を分割すると、 ある数字までのFizzBuzz String の長さを高速に計算する ↑の数字を[0, s)の間で二分探索 というところまで分かる。 なぜ二分探索が出てくるかというと、 ある数字までのFizzBuzz Stringの長…

AOJ 1157 : 大玉転がし

Roll-A-Big-Ball | Aizu Online Judge直方体を直方体の底面を表現する線分4つ(反時計回り)と高さhで表現する。コースも線分として捉えると、各直方体への距離が求めることができる。 このときの距離を d とすると、h >= d のとき、そこを通過できる最大半…

AOJ 1140 : Cleaning Robot

Cleaning Robot | Aizu Online Judge巡回セールスマンライクな問題。汚れの数が最大10なのでbitDPで解くことが予想できる。bitDPが分からない場合、以下の資料が大変参考になる。プログラミングコンテストでの動的計画法あらかじめ汚れにインデックスを振っ…

AOJ 1176 : 輪番停電計画

Planning Rolling Blackouts | Aizu Online Judgeまず長方形を考えたとき、全体の和 - 長方形内の値の和が 抑制需要になり、s - 抑制需要が予備力となる。 予備力が0より小さいときは、それ以上分割しても結果は同じなので、 遷移する必要はない。 2つに分割…

AOJ 2741 : インビジブル

インビジブル | Aizu Online Judgeゲーム系の問題。困るのはスタックで配列で持っていたりすると解けない。 しかしよく考えてみると「最後に-1を出したのはいつか」 を持てばスタックの状態を表現できる。 (これだけでは不十分で最後にパスしたインデックス…

Codeforces Round #380 (Div. 2) A B C D

codeforces.com A めっちゃ実装に時間がかかった。どう書けばスマートか分からない。 ogoにhitしたらgoが続くまでfor文内のindexを増やす方式にしてAC。Submission #22346247 - Codeforces B actorがいないマスで上下左右に一つでもactorがいればカウントア…

AtCoder Beginner Contest 023 C D

abc023.contest.atcoder.jp C 図に書いてみると、行と列にどれぐらい点があるか着目すればよさそう。 このとき、 i行にある点がc[i]個のとき、k-c[i]となる列の中から点そのものでない(クロスしたところ)を数える i行にある点がc[i]個のとき、k-c[i]+1とな…

AtCoder Beginner Contest 024 D : 動的計画法

D: 動的計画法 - AtCoder Beginner Contest 024 | AtCoderぼくも動的計画法好きだけれど解けなかった。 愛が足りない。 当初の方針 えーどうするんだろう。愚直にはできないし・・・。諦め 解法を見て はい。こういう風に式をいじくってみる心意気というか …

AtCoder Beginner Contest 024 A B C

abc024.contest.atcoder.jp A 一回割引なしで計算しておいて、 あとから割引適用できたらするSubmission #985021 - AtCoder Beginner Contest 024 | AtCoder B imos法Submission #985031 - AtCoder Beginner Contest 024 | AtCoder C ちょっと考えた。 一番…

AtCoder Beginner Contest 025 D : 25個の整数

abc025.contest.atcoder.jp 当初の方針 分からない・・・。 全体の数(0の数の階乗)からルール違反のものを引いていくのかな。 でも重複があるし、それを取り除けなさそう・・・。諦め 解説をみて 1から置いていく、という発想が大事だったっぽい。 すでに…

AtCoder Beginner Contest 025 A B C

abc025.contest.atcoder.jp総じて文章が長めだった。 A 全探索したものをリストにつめておき、 与えられたインデックスに含まれるものを返す。Submission #983773 - AtCoder Beginner Contest 025 | AtCoder B シミュレートする。Submission #983782 - AtCod…

Codeforces Round #379 (Div. 2) A B C D

codeforces.com A mapっぽいもの(int[256)を用意して数えて出力Submission #22227451 - Codeforces B 256を貪欲に選んだあと、残ったもので32を生成する。 怖いのでlongにした。Submission #22231261 - Codeforces C c, dが昇順になっているので、二分探索…

AtCoder Beginner Contest 026 D : 高橋君ボール1号

abc026.contest.atcoder.jp 当初の方針 単調な関数じゃないから、二分法は使えないだろうなあ。g(t) = f(t) - 100とおけば、0となる点を見つければ良さそう。 じゃあニュートン法だなWAは? なんで? サンプルすら合ってないし。 手元じゃ誤差は1e-12らしい…

AtCoder Beginner Contest 026 A B C

abc026.contest.atcoder.jp A 全探索Submission #983055 - AtCoder Beginner Contest 026 | AtCoder B 便宜上一番内側の半径を0とすると、 2ずつ飛んでいきながら i番目の円の面積 - i + 1番目の円の面積 を足していけばいい。Submission #983058 - AtCoder …

AtCoder Beginner Contest 027 D : ロボット

abc027.contest.atcoder.jp 当初の方針 DP解法はすぐに思いつく。でも満点解法はどうすれば・・・?いろいろ考察してみるが甲斐なし諦め 解説をみて >, 確かに。頭いいなあ。じゃあ>を選んだからそれより右側で 一番大きい Segment Treeかなあ。ソートするだ…

AtCoder Beginner Contest 027 : A B C

abc027.contest.atcoder.jpむずかしめに感じた A int cnt[11]のような配列を用意して cnt[ni()]++とする。したら配列に入っている奇数のときの インデックスが答えSubmission #960459 - AtCoder Beginner Contest 027 | AtCoder B 島の合計人数がsなら、 1つ…

yukicoder No.443 GCD of Permutation

嘘解法でコンテスト終了後に落ちました。 あとで書き直します。 何回か再提出したらACするクソ解法が出来上がりました。精神が不安定になるので放置します。 記事を消すのは卑怯な気がしたので、 歴史として残しておきます。

yukicoder No.442 和と積

No.442 和と積 - yukicoder 解法 BigIntegerを使うとgcdが使えて楽http://yukicoder.me/submissions/129409

yukicoder No.441 和か積

No.441 和か積 - yukicoder 解法 BigIntegerを使うと何も考えなくていいhttp://yukicoder.me/submissions/129392

DDCC2016 予選 A B C

ddcc2016-qual.contest.atcoder.jp A 問題文みて頭が真っ白になったが、冷静に考えたらkを求めればよかった。Submission #968467 - DISCO presents ディスカバリーチャンネル コードコンテスト2016 予選 | AtCoder B 言っていることがわからなかった。落ち着…

AtCoder Beginner Contest 028

abc028.contest.atcoder.jp恐ろしく簡単なセットだった。サンプルケースも確認しないで出したら 添え字のタイプミスでRE出してしまった。 A 授業でよくありそう。Submission #960426 - AtCoder Beginner Contest 028 | AtCoder B "ABCDE"のStringを持ってお…

AtCoder Beginner Contest 030 D : へんてこ辞書

abc030.contest.atcoder.jp 当初の方針 見たことある。arukuka.hatenablog.com置換の累乗を使うんだな!N log Kで死亡うーん、ループがあるのかなあ。 でも今の実装だとうまく書けないし・・・。諦め 解法を見て 落ち着いて考えてみれば、閉路でループするま…