AtCoder ABC213

ABC213参加しました。

atcoder.jp

 

A - Bitwise Exclusive Or

解説 - AtCoder Beginner Contest 213

公式解説動画だと逆元の理屈からちゃんと教えてくれています。やることはXORを取るだけ。

B - Booby Prize

解説 - AtCoder Beginner Contest 213

一度ソートするのが楽です。下から2番目のスコアを見つけ出して、ソート前の配列で何番目にあるかを見つけます。

C - Reorder Cards

解説 - AtCoder Beginner Contest 213
提出 #24907057 - AtCoder Beginner Contest 213

座標圧縮でググると解説はたくさんでてきます。

例えば

5 5 6
1 1
3 1
5 1
1 3
1 5
5 5

だと、以下のようになります

1 x 4 x 5
x x x x x
2 x x x x
x x x x x
3 x x x 6

操作後は

1 4 5
2 x x
3 x 6

となります。 行について言えば、
一番上の行にあった数(1,4,5) => 0行目
2番目にあったもの(2) => 1行目
3番目にあったもの(3,6) => 2行目
に移るわけで、これは列についても同様。

つまり、
1. 行/列位置についてHashSetに蓄えておいて(これで重複を削除)
2. ソートし
3. 元の配列と対応付ける(2分探索)
ことで求められます。

D - Takahashi Tour

解説 - AtCoder Beginner Contest 213
提出 #24907510 - AtCoder Beginner Contest 213

経路としてはDFSでよくて(予め隣接頂点をソートしておく必要あり)
加えて通りがけ、行きがけ順をメモしておきます。 つまり、ちょっとでも頂点を辿ったらメモする必要があります。

まとめ

8問制になってから、教育的な問題が増えた気がします。