人工知能と競プロやってくブログ

深層学習・機械学習・AI・atcoder・競技プログラミングについて調べてやってみたことをまとめるブログです

🟫茶diff

AtCoder Beginner Contest 158 [ D - String Formation ]をPythonで解く。(400点、🟫茶diff)

問題 atcoder.jp 解法 文字を処理するクエリの * 先頭に追加 * 末尾に追加 という特性をみて、dequeでデータ管理すれば良いという点に気がつくかがポイント。 文字の反転も、馬鹿正直にクエリでるたびに行うと計算量がかなり増えるので反転をフラグ管理して…

AtCoder Beginner Contest 041 [ C - 背の順 ]をPythonで解く(🟫茶diff)

問題 atcoder.jp 解法 Pythonのdictionaryで、Aiのインデックス番号を管理する変数noを作成。 Aをソートして、Aの中身をループさせてnoから元のインデックス番号を引っ張ってきて表示。 実装

AtCoder Regular Contest 079 [ C - Cat Snuke and a Voyage ] をPythonで解く(300点、🟫茶diff)

atcoder.jp 解法 再帰関数を使ったDFS (深さ優先探索)でアッサリ解けた。

AtCoder Beginner Contest 130 [ C - Rectangle Cutting ]をPythonで解く。構築問題(300点、🟫茶diff)

問題文読んで自分なりに考えてみたが、解説みたらシンプル過ぎで驚き。 atcoder.jp 解法 はまやんさんの解説より引用。 この問題はある種の構築問題である。 構築問題の典型テクとして「理論値の最大値を実はいつも達成可能」というのがある。 今回もそうで…

AtCoder Beginner Contest 178 [ C - Ubiquity ]をPythonで解く。包除原理問題(🟫茶diff、300点)

atcoder.jp 解法 各条件について考えてみる。 これを満たす数列の個数(ア) = 10N なるが存在する(イ)。 これを満たす数列の個数 = 10N - 9N 9Nはを満たす個数 なるが存在する(ウ)。 これを満たす数列の個数 = 10N - 9N 9Nはを満たす個数 abc178_c 問題の答え…

AtCoder Beginner Contest 173 [ C - H and V ]をPythonで解く。bit全探索問題(300点、茶diff🟫)

atcoder.jp 解法 問題文より 行を何行か選び (0行でもよい)、列を何列か選ぶ (0列でもよい)なので、選ぶ行は何行でも自由に選択できる。 1 <= H, W <= 6 なので、最大でも212 = 4096通り。 bit全探索で総当たりをかけて、答えを求める。 実装 参考 blog.hama…

AtCoder Beginner Contest 182 [ C - To 3 ]をPythonで解く。公式解説が最後の1行でどんでん返しアリ?(300点🟫茶diff)

問題概要 atcoder.jp 解法 公式解説には、3の倍数に関する色々な考察が書いてある。 数十行にわたって難しそうなことが延々かいてあるのだが、最後の1行で驚きのどんでん返し。 Nが18桁しかないので消す桁を2進数を使って全探索でも解けます えー!それな…

AtCoder Beginner Contest 072 [ D - Derangement ] をPythonで解く(400点🟫茶diff)

AtCoder ProblemsにRecommendationって機能あって、ユーザことにオススメの難易度の問題を勧めてくれるんですよね(Atcoder Problems -> User -> Recommendation)。 茶diffやるべきだろうなと思ってたら、見事に茶の問題ばかり勧められるので、素直にやってき…

AtCoder Beginner Contest 187 [ D - Choose Me ] をPyhonで解く

AtCoder Problemsが茶diffと判定した問題から重点的にやっておこう。 という方針を立てました。 このレベル帯の問題が出来ないことが多いと感じるんですよ。 問題に書いてある通りに実装するとTLEで、実は数学的に計算量減らせますよ。 系の問題が多い、この…