はまやんはまやんはまやん

hamayanhamayan's blog

競技プログラミング

Matrix Reducing [freee プログラミングコンテスト2022(AtCoder Beginner Contest 264) C]

https://atcoder.jp/contests/abc264/tasks/abc264_c 前提知識 bit全探索 解法 パっと見た感じ難しい問題に見えると思う。 この問題で注目すべき部分は制約である。 盤面のサイズがとても小さく、最大でも10。 制約が小さいということは、少し無茶な解法でも…

XX to XXX [AtCoder Beginner Contest 259 C]

https://atcoder.jp/contests/abc259/tasks/abc259_c あるといい知識 (自分の解法では)ランレングス圧縮 解説 https://atcoder.jp/contests/abc259/submissions/33113322 ランレングス圧縮というものを知っていると少し解きやすかったかもしれない。 性質…

Circumferences [AtCoder Beginner Contest 259 D]

https://atcoder.jp/contests/abc259/tasks/abc259_d 前提知識 幾何:円上に点があるかの判別、2円の交差判定 到達可能性判定 解説 https://atcoder.jp/contests/abc259/submissions/33122718 今回の問題は前提として、幾何の以下の判定方法を知っている必要…

Addition and Multiplication 2 [日鉄ソリューションズプログラミングコンテスト2022(AtCoder Beginner Contest 257) E]

https://atcoder.jp/contests/abc257/tasks/abc257_e 前提知識 (構築テクに似たようなものがある。ここのテク2) 解説 https://atcoder.jp/contests/abc257/submissions/32754197 この問題は貪欲法で解く。 アドホックな解法ではあるが、方針としてはテクと…

Jumping Takahashi 2 [日鉄ソリューションズプログラミングコンテスト2022(AtCoder Beginner Contest 257) D]

https://atcoder.jp/contests/abc257/tasks/abc257_d 前提知識 二分探索 BFS (BFSを使わなくても良いやり方もある) 解説 https://atcoder.jp/contests/abc257/submissions/32753407 何から考え始めるか いつものように全探索解法がないか探してみる。 全探…

Robot Takahashi [日鉄ソリューションズプログラミングコンテスト2022(AtCoder Beginner Contest 257) C]

https://atcoder.jp/contests/abc257/tasks/abc257_c 前提知識 SegTree (だが、使わない解法もあると思う) 解説 https://atcoder.jp/contests/abc257/submissions/32751195 全探索解法に向けて まずは全探索解法がないかを模索してみる。 Xが実数全体を動…

Index Trio [モノグサプログラミングコンテスト2022(AtCoder Beginner Contest 249) D]

https://atcoder.jp/contests/abc249/tasks/abc249_d 前提知識 約数列挙 解説 https://atcoder.jp/contests/abc249/submissions/31211388 とある数xの約数列挙をO(sqrt(x))で行う方法がある。 もし分からない場合は「約数列挙」あたりで検索して、勉強してく…

Just K [モノグサプログラミングコンテスト2022(AtCoder Beginner Contest 249) C]

https://atcoder.jp/contests/abc249/tasks/abc249_c 前提知識 bit全列挙 解説 https://atcoder.jp/contests/abc249/submissions/31208645 この問題ではbit全列挙が分かっているとスムーズに解くことができる。 bit全列挙については、他に詳しい解説があるの…

Keep Connect [ユニークビジョンプログラミングコンテスト2022(AtCoder Beginner Contest 248) F]

https://atcoder.jp/contests/abc248/tasks/abc248_f 前提知識 (連結DP) 解説 https://atcoder.jp/contests/abc248/submissions/31047647 全くメジャーな言い回しではないが、連結DPをする。 ただ単に連結性を状態として持つDP。 一般にこの手のDPでは行列…

K-colinear Line [ユニークビジョンプログラミングコンテスト2022(AtCoder Beginner Contest 248) E]

https://atcoder.jp/contests/abc248/tasks/abc248_e 解説 https://atcoder.jp/contests/abc248/submissions/31046558 幾何問題。 以下解法、非常に面倒なので、別の解法があるかも… (解法に移る前に) 以下のケースでちょっとはまったので、WAではまってる…

Range Count Query [ユニークビジョンプログラミングコンテスト2022(AtCoder Beginner Contest 248) D]

https://atcoder.jp/contests/abc248/tasks/abc248_d 前提知識 二分探索 解説 https://atcoder.jp/contests/abc248/submissions/31044881 色々な解法が見える問題。 実際WaveletMatrixというデータ構造を使えば、一瞬で答えが出るのだが、二分探索解法で説明…

Dice Sum [ユニークビジョンプログラミングコンテスト2022(AtCoder Beginner Contest 248) C]

https://atcoder.jp/contests/abc248/tasks/abc248_c 前提知識 動的計画法 解説 https://atcoder.jp/contests/abc248/submissions/31043632 この問題では動的計画法を用いて、答えを作成していく。 動的計画法の入門の次の一手くらいの問題なので、全く分か…

Bishop 2 [AtCoder Beginner Contest 246 E]

https://atcoder.jp/contests/abc246/tasks/abc246_e 前提知識 拡張ダイクストラ 解説 https://atcoder.jp/contests/abc246/submissions/30681205 問題文とはxとyの解釈を逆にして説明している。 好みの問題ではあるのだが、つまり、チェス盤の上からy行目、…

2-variable Function [AtCoder Beginner Contest 246 D]

https://atcoder.jp/contests/abc246/tasks/abc246_d 前提知識 二分探索 解説 https://atcoder.jp/contests/abc246/submissions/30680524 なかなか難しいというか、競プロ的なアプローチを含んだ問題。 二分探索が分かっていない場合はそちらを先に学習して…

Choose Elements [AtCoder Beginner Contest 245 C]

https://atcoder.jp/contests/abc245/tasks/abc245_c 解説 https://atcoder.jp/contests/abc245/submissions/30483611 やや丁寧めに説明ぞ書いていく。 何から始めていけばいい? 問題への取り組み方として、全列挙してみたり、実験してみたり、色々やってみ…

Construct Good Path [AtCoder Beginner Contest 244 G]

https://atcoder.jp/contests/abc244/tasks/abc244_g 解説 https://atcoder.jp/contests/abc244/submissions/30323833 何から始めればいいか困る問題。 構築問題で重要なのはなるべくシンプルなルールで構築を考えていくことである。 今回は特に最適なパス長…

Shortest Good Path [AtCoder Beginner Contest 244 F]

https://atcoder.jp/contests/abc244/tasks/abc244_f 前提知識 BFS 解説 https://atcoder.jp/contests/abc244/submissions/30322530 今回の問題はbitmaskを状態として利用したbfsで解くことができる。 状態の持ち方としてbitmaskを利用するという方法はbit全…

King Bombee [AtCoder Beginner Contest 244 E]

https://atcoder.jp/contests/abc244/tasks/abc244_e 前提知識 動的計画法 解説 https://atcoder.jp/contests/abc244/submissions/30321733 まず前提としてDPが分かっていないとこの問題を解くことは難しい。 DPが未履修であれば、先に学習してこよう。 DPの…

Subtree K-th Max [デンソークリエイトプログラミングコンテスト2022(AtCoder Beginner Contest 239) E]

https://atcoder.jp/contests/abc239/tasks/abc239_e 前提知識 オイラーツアー セグメントツリー 解説 https://atcoder.jp/contests/abc239/submissions/29488895 データ構造でゴリ押して解けそうな感じもするし、Kの値が小さいことを利用して、楽に解くこと…

Subtree K-th Max [デンソークリエイトプログラミングコンテスト2022(AtCoder Beginner Contest 239) E]

https://atcoder.jp/contests/abc239/tasks/abc239_e 前提知識 オイラーツアー セグメントツリー 解説 https://atcoder.jp/contests/abc239/submissions/29488895 データ構造でゴリ押して解けそうな感じもするし、Kの値が小さいことを利用して、楽に解くこと…

競プロのエコシステムについて

この記事は競技プログラミングを始めたばかりの人に伝えたいことのカレンダー | Advent Calendar 2021の10日目の記事です。 カレンダーを見るとネタ被りをしていたのでテーマを変更しました。 競技プログラミングには色々な要素があり、初めて競プロを始めた…

競技プログラミングをやってきた

この記事は競プロ Advent Calendar 2021の10日目の記事です。 長年、競技プログラミングをやってきた。 気が付けば、最初に競技プログラミングを初めてから既に6年が過ぎていた。 別にこの記事を何らかの区切りにしようとか、そういった意図はないのだが、振…

Happy Wedding! [第八回 アルゴリズム実技検定 K]

https://atcoder.jp/contests/past202109-open/tasks/past202109_k 前提知識 最小費用流 (もしくは重み付き二部グラフ上での最大マッチング) 解説 https://atcoder.jp/contests/past202109-open/submissions/26707534 慣れていると、この問題がかなりフロー…

Reverse Array [第八回 アルゴリズム実技検定 J]

https://atcoder.jp/contests/past202109-open/tasks/past202109_j 前提知識 遅延評価セグメントツリー 解説 https://atcoder.jp/contests/past202109-open/submissions/26703507 遅延評価セグメントツリー以外にも沢山実装方法があるように見える。 今回、…

/2 and *3 [第八回 アルゴリズム実技検定 I]

https://atcoder.jp/contests/past202109-open/tasks/past202109_i 解説 https://atcoder.jp/contests/past202109-open/submissions/26690153 難しい問題。色々方針が思い浮かぶかもしれないが、思いつかないと中々厄介だろうと思う。 本質を見抜く 実は、今…

Shortest Path [第八回 アルゴリズム実技検定 H]

https://atcoder.jp/contests/past202109-open/tasks/past202109_h 前提知識 LCA 解説 https://atcoder.jp/contests/past202109-open/submissions/26687334 今回の問題は制約が割と緩いので、基本的な典型アルゴリズムを理解していると解ける。 愚直に考えて…

K-th element [第八回 アルゴリズム実技検定 G]

https://atcoder.jp/contests/past202109-open/tasks/past202109_g 前提知識 二分探索 解説 https://atcoder.jp/contests/past202109-open/submissions/26603092 この問題は正直典型問題として知っていないと解くのは難しいように思う。 二分探索を利用する…

Incomplete Permutation [第八回 アルゴリズム実技検定 F]

https://atcoder.jp/contests/past202109-open/tasks/past202109_f 構築 解説 https://atcoder.jp/contests/past202109-open/submissions/26602840 構築問題。 構築問題の基本は、シンプルな構築ルールである。 なるべく簡単に簡単に条件を満たせるルールを…

Colorful T-Shirts [第八回 アルゴリズム実技検定 E]

https://atcoder.jp/contests/past202109-open/tasks/past202109_e 解説 https://atcoder.jp/contests/past202109-open/submissions/26602632 貪欲法で解いていく。 かかる値段を最小化したいと考えた場合、簡単な方針として、安いものから選択するという方…

Divisor [第八回 アルゴリズム実技検定 D]

https://atcoder.jp/contests/past202109-open/tasks/past202109_d 前提知識 約数列挙 解説 https://atcoder.jp/contests/past202109-open/submissions/26602449 とある数の約数の個数が計算できれば、あとは判定するだけとなるので、 実質問題視されている…