Yuulis.log

Yuulis.log

トンネルを抜けるとそこは参照エラーであった。

【AtCoder】トヨタ自動車プログラミングコンテスト2024#9(AtCoder Beginner Contest 370) - 参加記 | 茶コーダーが解くAtCoder

atcoder.jp

コンテスト時間: 2024-09-07(土) 21:00 ~ 2024-09-07(土) 22:40 (100分)

A - Raise Both Hands

Difficulty: 11

解答時間: 2:30


  • すぬけ君は、たこ焼きを食べたいときは左手のみを挙げ、そうでないときは右手のみを挙げる。また、両手を挙げることも両手を挙げないこともあり得る。すぬけ君がたこ焼きを食べたいならばYesを、そうでないならばNoを、すぬけ君が両手を挙げているか、手を挙げていないときはInvalidと出力せよ。
  • 以下の3つの場合に場合分け。
    •  L = 1, R = 0 \impliesYes
    •  L = 0, R = 1 \impliesNo
    •  \mathrm{else} \impliesInvalid

B - Binary Alchemy

Difficulty: 84

解答時間: 4:04


  •  N 種類の元素があり、それらを合成することを考える。元素  i と元素  j を合成すると  i \geq j のとき元素  A_{i, j} に、  i \lt j のとき元素  A_{j, i} に変化する。元素  1 に対して元素  1,2, \cdots, N をこの順に合成したとき、最終的に得られる元素を求めよ。
  • これは指示の通りにやっていくだけ。添字でミスらないように。

C - Word Ladder

Difficulty: 228

解答時間: 21:51


  • 英子文字からなる長さの等しい文字列  S, T が与えられる。空の配列  X を用意し、  S, T が等しくなるまで「 S の一文字を書き換え、  X の末尾に  S を追加する」という操作を繰り返す。こうして得られる文字列の配列  X のうち要素数最小かつ辞書順最小のものを求めよ。
  • 前から  S, T の各文字を先頭から比較し、辞書順で  S の方が後なら入れ替える。次に後ろから比較していき、辞書順で  S の方が前なら入れ替えていく。
  • 問題の意味を理解するのに5分くらいかかった。

D - Cross Explosion

Difficulty: 1088


  •  H \times W マスのグリッドが与えられる。はじめ、すべてのマスには壁が1個ずつ立てられている。次の形式で与えられる  Q 個のクエリを処理せよ。
    • クエリ : マス  (R_q, C_q) に爆弾を置く。  (R_q, C_q) に壁があればその壁が破壊される。壁がない場合、そのマスから上下左右それぞれをみて最初に現れる壁を破壊する。
  • グリッド上の各マスの壁の有無を二次元配列で管理して愚直に実装すると TLE 。
  • 各行各列のマスをsetで管理することで、破壊済みのマスと未破壊のマスの境界を二分探索で効率に求められるらしい。

結果

Performance: 783

Rating: 608 → 627 (+19)

atcoder.jp

まあ耐え。