1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

0.はじめに

 気合を入れて土曜日に待ち構えていたら日曜開催で
 肩透かしを食らった今日この頃
 今回なんとかC問題は解け、D、Eも行けそうな気がして
 チャレンジしましたが失敗。
 レートは-8の694とついに600点台まで落ちていきました・・・。
 最近解答力が落ちすぎなので、今回は試験後
 DとEも解説を見ながら自分で解いてみました。

1. A - What month is it?

 素直にXとYを足した値Zが12より大きければ
 Z-12をそうでなければZを出力して終了でACでした。

 https://atcoder.jp/contests/abc420/submissions/68734509

2.B - Most Minority

 B問題にたまにあるプログラミング的には簡単だけど
 内容がややこしい問題。(あくまで個人の感想)
 一旦Sをすべて読み込んでから投票ごとの得点者を
 加算していき最後に最高得点者を判別して出力して終了でACでした。

 https://atcoder.jp/contests/abc420/submissions/68747865

3.C - Sum of Min Query

 制約から、単純に更新毎に出力する値を計算していると
 間に合わなくなるので以下のような工夫。
 【考え方】
  ・AとBの小さい方を保持するリストCとその合計SCを用意
  ・クエリ毎にCの値の更新を判断し、更新された場合はSCも更新し出力
 上記考え方ですんなりACとなりました。

 https://atcoder.jp/contests/abc420/submissions/68759312

4.D - Toggle Maze

 コンテスト中はスイッチでの切替ごとに条件が変わる部分を
 どのように通過済とするかに悩んでいるうちに時間切れ。

 解説を見てスイッチon/off毎の通過フラグを持てばよいことが分かり
 その手があったかと感心しました。

 が、その内容で実装してもTLEが消えず解答例を参照し
  移動回数を関数に引き渡す→移動回数は別表で保持
  移動後に移動回数を加算→移動前に加算
  移動判断を関数化→while処理内に含める
 等々工夫を重ね、何とかACとなりました。

 https://atcoder.jp/contests/abc420/submissions/68796196

#5.E - Reachability Query
 こちらはコンテスト中は手が回らず、後からみて解きました。
 とはいえ、解説を見ないと考え方もピンときませんでした。
 
 過去問で使用したユニオンファインド木の関数を用意し
 ・unite(枝の結合)関数に以下機能を追加
  ・ルート毎の黒石数を合計する
 あとは、クエリ毎に
 タイプ1の時は枝の結合
 タイプ2の時は頂点の色変化を行い
 黒→白の時はルート毎の黒石数を減少
 白→黒の時はルート毎の黒石数を増加
 タイプ3の時は対象頂点のルートに
 黒石が含まれればYes、含まれなければNoを出力して終了

 といった感じでACとなりました。

 https://atcoder.jp/contests/abc420/submissions/68798816

以上

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?