けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder400点

AtCoder ABC 073 D - joisino's travel (水色, 400 点)

Floyd-Warshall で前処理してどうのこうのする問題。特に ICPC 系などでよくある! 問題へのリンク 問題概要 頂点 辺の重み付き無向グラフが与えられる。このグラフ上で 個のチェックポイントをなす頂点集合が指定されている。好きなチェックポイントからス…

AtCoder ABC 070 D - Transit Tree Path (緑色, 400 点)

一見、ツリー上のパスクエリ (オイラーツアーとかするやつ) な問題に見えるけど、そんなことはなかった 問題へのリンク 問題概要 頂点のツリー (辺に重み付き) が与えられる。ツリー上の 1 点 が与えられて、以下のクエリに 個答えよ: クエリ (): から を経…

AtCoder ABC 118 D - Match Matching (青色, 400 点)

文字列を値にもつ DP、ご無沙汰!!! 問題へのリンク 問題概要 本のマッチ棒を使ってできるだけ大きな数値を作りたい。 マッチ棒で 1, 2, 3, 4, 5, 6, 7, 8, 9 を作るのにそれぞれ 2, 5, 5, 4, 5, 6, 3, 7, 6 本のマッチ棒が必要である。 ただし各桁に用い…

AtCoder ABC 064 D - Insertion (緑色, 400 点)

教育的典型題 問題へのリンク 問題概要 カッコ列が与えられる。カッコ列に最小個数の '(' と ')' を挿入して「整合のとれたカッコ列」にせよ。またそのようなものが複数通り考えられる場合には、辞書順最小のものを求めよ。 制約 考えたこと 超定番。 AtCode…

AtCoder ABC 061 D - Score Attack (青色, 400 点)

Bellman-Ford 法を活用する典型問題ですが、少し注意が必要な問題ですね。 問題へのリンク 問題概要 頂点 辺の重み付き有向グラフが与えられます。 頂点 から頂点 へと至る最長路の長さを求めてください。 ただし、いくらでも長い路が存在する場合は inf と…

AtCoder ABC 057 D - Maximum Average Sets (青色, 400 点)

これは単に二項係数知っているかを問う感じ...? この頃と今とでは、多少問題傾向も違う気がする。 問題へのリンク 問題概要 個の数値が与えられる。このうち 個以上 個以下を選ぶときのその平均値の最大値を求めよ。 また最大を達成する選び方が何通りある…

AtCoder ABC 054 D - Mixing Experiment (青色, 400 点)

なんだろ 問題へのリンク 問題概要 個の薬品があって、それぞれ成分 A, B を グラムずつ含んでいる (すべて整数値)。 これらのうちのいくつかを選んで混ぜ合わせることで、成分 A, B の比がちょうど : となるようにしたい。 そのようなことが可能となる薬品…

AtCoder ABC 051 D - Candidates of No Shortest Paths (水色, 400 点)

「最短路として選ばれる可能性がないところを挙げる」というのは、それ自体、高難易度問題で部分的に必要になる考察だったりするね。 問題へのリンク より高難易度な問題の部分問題となる例として、 RUPC 2018 day3-F 最短距離を伸ばすえびちゃん がある。こ…

AtCoder ABC 117 D - XXOR (水色, 400 点)

以下の典型思考で解けるけど、苦手意識...^^; XOR な問題は各桁ごとに見る の動ける範囲が 以下と指示されているときは、 を上位ビットから見ていったときに、それがどこまで と一致するかを考える (桁 DP でおなじみの考え方) 問題へのリンク 問題概要 個の…

キーエンス プログラミング コンテスト 2019 C - Exam and Wizard (茶色, 400 点)

好き!!! 問題へのリンク 問題概要 長さ の 2 つの数列 と が与えられる。 数列 であって 任意の に対して、 を満たすものを考えたときの、 となる の個数の最小値を求めよ。 制約 考えたこと をなるべく変形箇所を少なくしつつ に変形して、 にオール勝ち…

AtCoder ABC 112 D - Partition (緑色, 400 点)

すごく教育的ないい問題な感じ 問題へのリンク 問題概要 整数 , が与えられる。 を満たす正の整数列 をすべて考えたときの、 の最大公約数の最大値を求めよ。 制約 考えたこと 候補を一気に絞る まず の最大公約数が必ず の約数になることがわかる。まずはこ…

Tenka1 2018 C - Align (緑色, 400 点)

今週のお題「わたしとバレンタインデー」 提出するまでが怖かった 問題へのリンク 問題概要 整数が N 個与えられます。 i 個目の整数は Ai です。 これらを好きな順に一列に並べるとき、隣り合う要素の差の合計の最大値を求めてください。 考えたこと うおっ…

AtCoder ABC 110 D - Factorization (青色, 400 点)

素因数分解 & 重複組合せ を勉強できる、すごく教育的問題だった!!! 問題へのリンク 問題概要 (ABC 110 D) 整数 が与えられる。 を満たす整数の組 () が何通りあるか、1000000007 で割った余りで求めよ。 制約 解法 素因数分解っぽいテーマの問題。こうい…

AtCoder ABC 109 D - Make Them Even (緑色, 400 点)

最初は「一度選んだマスを使えない」を完全に呼び飛ばしてしまった上に、それに気づいた後も「奇数マス同士をマッチングして、うまく経路を設定する」という方向の考察をしまくって、上手くいかずに迷走した... 問題へのリンク 問題概要 (ABC 109 D) 縦 行、…

AtCoder ABC 106 D - AtCoder Express 2 (水色, 400 点)

いろんな方法が考えられそう。 せっかくなので、敢えて、N が大きくても OK な方法でやってみる。hama_du さんの記事を参照。 問題概要 (ABC 106 D) M 個の区間 [l_i, r_i] が与えられる。以下の Q 個のクエリに答えよ: 区間 [p, q] に完全に含まれる区間が…

AtCoder ABC 105 D - Candy Distribution (水色, 400 点)

AGC 023 A - Zero-Sum Ranges とほぼ同じ問題なんな。ただし、バケットを愚直に確保すると 109 サイズになってしまうので map とか連想配列が必要になるのん。 問題へのリンク 問題概要 (ABC 105 D) 個の整数 の連続する部分区間のうち、その総和が の倍数と…

AtCoder ABC 104 D - We Love ABC (青色, 400 点)

これ好きなん!!! 400 点問題が問題分読んで 5 秒以内に方針立ったのは珍しいので、成長かもなん。 そして、DEGwer さんや chokudai さんが「DP は割とコーディングしながら細部詰めてる」と言っていたので、それを実践してみて、確かに良さそうかもなん。…

SoundHound 2018 本戦 B - Neutralize (400 点)

本番では回避したん。こういうのをサッサササッとバババババーンと解けるようになりたいん。 問題へのリンク 問題概要 個の数列 が与えられる。以下の操作を好きな回数だけ行って得られる数列の総和を最大化せよ。 連続する 個の区間の数列を一斉に 0 にする…

AtCoder ABC 099 D - Good Grid (水色, 400 点)

「前処理」を学べる問題なんな。 問題へのリンク 問題概要 (ABC 099 D) 色が全部で 色ある。 × の盤面がそれぞれ 色のいずれかに塗られている。今この盤面の色を塗り替えて マス () について % 3 の値によって色を類別された状態 (その値が同じマスは同じ色…

AtCoder ABC 103 D - Islands War (水色, 400 点)

問題へのリンク 実は、こないだの RUPC 2018 で出てたん (最後の部分のみほぼ同じ) AOJ 2873 - 検閲により置換 見た目は区間スケジューリング問題とは違うけど、実は区間スケジューリング問題なのん (こういうの双対問題と言ったりするん)。双対性の知識がま…

2018 codeFlyer 本選 B - 交通費 (400 点)

ちょっと重たかったん。でも累積和には大分慣れて来たのん。lower_bound とか upper_bound がどっちだけ...ってのはまだなかなか慣れないから要修行なのん。でも今回は本当にどちらでもいいので、こういうところで思考停止できるようになるのが大事なのんな…

AtCoder ABC 100 D - Patisserie ABC (水色, 400 点)

ABC 100 D - Patisserie ABC 問題概要 整数 3 つ組 (xi, yi, zi) が N 個与えられる。 このうちの M 個選んで、 (x の選んだ M 個の総和の絶対値) + (y の選んだ M 個の総和の絶対値) + (z の選んだ M 個の総和の絶対値) が最大になるようにせよ。 制約 1 <=…

2018 codeFlyer 予選 C 徒歩圏内 (400 点)

実装力って大事だなと。 Before: https://beta.atcoder.jp/contests/bitflyer2018-qual/submissions/2601840 After: https://beta.atcoder.jp/contests/bitflyer2018-qual/submissions/2603569 2018 codeFlyer 予選 C 徒歩圏内 問題概要 長さ の単調増加数列…