コンテスト時間: 2025-03-22(土) 21:00 ~ 2025-03-22(土) 22:40 (100分)
A - Doors in the Center
Difficulty: ???
解答時間: 3:46
- 以下の条件を全て満たす長さ
の文字列を求めよ。
- 各文字は
-
または=
である。 - 回文である。
- 文字列中に
=
は個または
個含まれる。
個含まれる場合、それらの
=
は隣接している。
- 各文字は
の偶奇で場合分け。
が偶数なら、
個の
-
と、個の
==
と、個の
-
をこの順に出力すればよい。が奇数なら、
個の
-
と、個の
=
と、個の
-
をこの順に出力すればよい。
B - Full House 3
Difficulty: ???
解答時間: 3:30
枚のカードがあり、
番目のカードには整数
が書かれている。これらのカードから
枚を選び、フルハウスとできるか判定せよ。
- 各カードの枚数を
map
を使って管理する(key
はカードの数、value
は枚数)。 に対して全探索を行い、
かつ
なる [(i, j)] の組が存在すれば
Yes
、そうでなければNo
。- 想定解 bit 全探索なのマジか...
- 過去の Full House :
C - Uniqueness
Difficulty: ???
解答時間: 10:32
から
の番号がついた
人の人がいて、人
は数
を持っている。「自分と同じ数を持っている人が自分以外に存在しない」という条件を満たす人のうち、持っている数が最大である人の番号を求めよ。
- ある数を持っている人の人数を
map
を使って管理する(key
は数、value
は人数)。 について、
であるならば、数
を持つ人は条件を満たす。
- あとはこの
を最大化すればよい。
D - Bonfire
Difficulty: ???
解答時間: 37:15
- 2次元グリッドの座標
に焚き火があり、時刻
ではマス
にのみ煙が存在する。
N
,W
,S
,E
からなる長さの文字列
が与えられ、時刻
では、以下の現象が順に発生する。
- 風が吹いて現時点で存在する全ての煙が風下側に移動する。
- マス
に煙が存在しない場合、新たな煙がマス
に生成される。
- 高橋君はマス
に立っている。整数
について、時刻
においてマス
に煙が存在するか判定せよ。
- 南北方向と東西方向のそれぞれの移動量の累積和(
とした)を時刻ごとに計算しておく。
- 二次元ハッシュマップを用意して、
を格納する(時刻
に煙が生成されることに対応)。
- 「時刻
に
に煙がある」ということは、「
である
が存在する」ことに等しい。
- 「とびだせどうぶつの森」の南の島で遊べる「バルーンハントツアー」のシミュレーションをしたときに、似たような処理をしたことがある気がする。分かる人いるかなぁ...
- 想定解みたいに、焚き火と高橋君を動かした方が圧倒的にラク。
結果
Performance: 901
987 → 978 (-9)
E問題で珍しくインタラクティブ問題が出たみたい。
- E : 奇閉路を持たないグラフは二部グラフ
- F : Manacher のアルゴリズム
どちらも知らなかったので精進します。