LoginSignup
0
0

More than 1 year has passed since last update.

0.はじめに
 Cは、初見簡単に解けそうに感じたけど
 意外とてこずりました。

1.A - 484558
 最近2進数を扱う問題があったので、その時のソースを参考に
 簡単に解けました。
 

H=str(hex(N))[2:]

 文字列にして、3文字目から参照するのは2進数と変わらずでした。

 https://atcoder.jp/contests/abc271/submissions/35275984

2.B - Maintain Multiple Sequences
 2次元数列を格納して
 指定アドレスを抽出するだけの簡単なお仕事。
 行は指定数マイナス1にして、列は、1列目が列数なので
 そのまま使えるというのがみそでした。

 https://atcoder.jp/contests/abc271/submissions/35281480

3.C - Manga
 考え方1)
  (1)一番うまくいってもN巻まで読めるのが最高
  (2)N巻までの数列Lを作って、リストAを頭からチェックし
    持っている巻は数列Lの該当アドレスを1に変更。
    N以上の巻や、すでにチェックがついている巻があったら
    売却候補に1プラス
  (3)数列Lを1から見ていき、空いている感があれば売却候補から2を
    引いて次の巻へ。
    売却候補が足りなければ、数列Lを後ろから見ていき、後ろの本の
    アドレスが1の者があったら0にして売却候補に1可算・・・

   という仕組みで、例題は通ったが、予想通りTLE

 →いろいろ高速化を試すもNG・・・
  と、している間に、数列Lさえ作ってしまえば、最初のN巻をもとに
  計算できることに気づく。

 考え方2)
  (1)一番うまくいってもN巻まで読めるのが最高
  (2)N巻までの数列Lを作って、リストAを頭からチェックし
    持っている巻は数列Lの該当アドレスを1に変更。
    N以上の巻や、すでにチェックがついている巻があったら
    売却候補に1プラス
  (3)数列Lを1から見ていき、フラグが立っていれば、Nから1を引く
    フラグが立っていなければ、Nから2を引く
    Nが0になったら、該当アドレスが答え。
    Nが-1になったら、該当アドレス-1が答え

  若干不格好なPGとなりましたが、クリアできました。

 https://atcoder.jp/contests/abc271/submissions/35301920
    
4.D - Flip and Adjust
 これはDP!と思いましたが、解法はわからず・・・。
 いつかDPマスタしようと思いつつはや半年・・・。

  

0
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
0
0