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.はじめに

 1年3か月の休暇最後のコンテスト。
 C問題までは順調に進むもDでてこずりました。
 とはいえなんとか時間以内に回答でき、4問正解で終了。
 レートは+9の795と先週の枚なうが取り戻せました。

1. A - 455

 455にちなんだ問題。
 A,B,Cを読み込み、AとBが異なり、BとCが同じなら
 Yesを出力、そうでなければNoを出力して終了としてACでした。

 https://atcoder.jp/contests/abc455/submissions/75228467

2.B - Spiral Galaxy

 Aから急に難易度アップ。
 とはいえB問題であり、Nが10までなので素直に実装。

 問題文通りに、h1、h2、w1、w2の範囲を定義し
 その中で、iとjの全組み合わせについて、
 S[i][j]とS[h1+h2-i][w1+w2-j]が一致するかをチェック
 全て一致する組み合わせの場合は回答用変数ansに1を加算し
 最後にansを出力して終了としてACとなりました。

 https://atcoder.jp/contests/abc455/submissions/75235347

3.C - Vanish

 pythonのカウンター関数を使えば楽な問題。
 【考え方】
  1.リストAについてカウンター関数により数字とその個数を求める
  2.数字掛ける個数をリストLに格納
  3.リストLを降順ソート
  4.リストLのK+1番目以降の値を集約して出力

 Cにしてはあっさりと回答できました。

 https://atcoder.jp/contests/abc455/submissions/75244505

4.D - Card Pile Query

 問題の内容はわかりやすいけど、解き方が難しい良い問題。
 
 【考え方】
  ・一回でも移動した数字の山は、最終的にカード数0枚
   →リストMでカードが動かされたかを管理
  ・各カードの上に載っているカードを管理しリストMでカードが残っている
   山のカードに乗っているカードを数えれば答えることができる
   →辞書Uで対象カードに乗っているカードを管理
  ・途中の移動で、上に載っているカードがなくなることがあるので
   移動対象カードの下にあるカードを把握しておく必要がある
   →辞書Dで対象カードの下にあるカードを管理
    移動クエリーで箱の辞書を参照し辞書Uの関係を削除する

 【実装】
  1.N、Qをよみこむ
  2.デフォルト辞書U(キー:対象カード、値:対象カードの上にあるカード)
   D(キー:対象カード、値:対象カードの下にあるカード)を値intで定義
  3.リストM(カードが移動されたかを管理)を値1掛けるN+1で初期化
  4.以下Q回繰り返し
   -1.C,Pを読み込む
   -2.Cが辞書Dにある場合(既にどこかのカードの上に移動されていた場合)
     辞書UからD[C]を辞書DからCを削除(前回移動時の連結情報をクリア)
   -3.辞書UにキーP値Cを登録
   -4.辞書DにキーC値Pを登録
   -5.リストMのCを0に変更
  5.回答用リストansを空で定義
  6.以下iを1~Nまで繰り返し
   -1.M[i]が0以外の時
    -1.変数now(山iに乗っているカードの枚数)に1をセット
    -2.変数x(今見ているカード番号)にiをセット
    -3.xが辞書Uにある限り、xにU[x]をセットし、nowに1加算
    -4.ansにnowを追加
   -2.M[i]が0の時、ansに0を追加
  7.ansを出力して終了

 解き方のイメージはすぐできたのですが、UとDの関係が頭の中で
 整理できず時間がかかってしまいました。

 https://atcoder.jp/contests/abc455/submissions/75270613

以上

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?