Toy と帽子と ADP BE

主にプログラミングに関わる話をゆるくエモくやっていきます

AtCoder Beginner Contest 294

5完2WA。

各問題

A - Filter

各Aについて偶数かどうかをチェックして偶数なら出力する奇数ならしない、をします。

B - ASCII Art

各Aについて、0なら . を出力、1以上なら A - 1 + 'A' を出力、をします。

C - Merge Sequences

Aの先頭とBの先頭からチェックを始めて、Ai < Bj なら Ai は全体の x 番目で i を次にすすめる、逆なら Bj は全体の x 番目で j を次に進める、とします。どちらかが最後まで行ってしまったら、残った番号はもう一方に順次埋めていけばよいです。

D - Bank

どこまで呼ばれたかと、各人が受付に行ったかどうかのフラグを持っておきます。

呼ばれるのは前からなので、1 については順次進めていけばよいです。

2 については受付に行った人にフラグを立てればよいです。

3 については基本前からなのですが、単にインクリメントするのではなくすでに受付に行った人は除外する必要があります。

3 の処理で呼ばれた人を受付に行った扱いしてしまい 1WA。

E - 2xN Grid

A, B それぞれの区切りを一つの配列にまとめて(ソートして)持ちます。例えば入力例1なら、A の区切りは {2, 4, 7, 8} にあり、B の区切りは {4, 5, 8} にあるので、まとめると {2, 4, 5, 7, 8} となります。

あとは、まとめた区切り位置ごとに A と B の値がいくつになっているか確認し、同じなら区間の長さを答えに足していけばよいです。

位置の計算をする部分で一か所変数を int で定義してしまい 1WA。もったいない。

F - Sugar Water 2

何もわからずパス。

G - Distance Queries on a Tree

何とかうまくして各距離をセグメントツリーに乗せるなどすればいいのではないかと思い、オイラーツアーなら直列になるよなぁ?と思ってオイラーツアーはしてみたものの、重みをどこにどう載せて更新すればよいのかがわからず。

解説見たら、考察の方向性(というか使うデータ構造やアルゴリズム)はばっちりあってた模様...。生かせなかったら意味がないですね。

まとめ

比較的簡単なセットだったので、むだに WA を 2 つも出してしまったのが大きく響いてしまいました。