0
0

More than 1 year has passed since last update.

0.はじめに
 Cまではすぐに解けたけど、DはACもらえませんでした。
 でも、いつもよりCまでが早かったせいか、レーティングは
 30upしました。

1.A - Count Down
 単純にforを回す問題
 カウントダウンなところと、Nと0を出力するところが
 若干気にするところでした。 

 https://atcoder.jp/contests/abc281/submissions/37141394

2.B - Sandwich Number
 文字列Sが以下のチェックを潜り抜けた場合のみYesを出力
 1)Sの長さが8である
 2)Sの1文字目と8文字目がチェックリスト1(A-Z)の中にある
 3)Sの2文字目がチェックリスト3(123456789)の中にある
 4)Sの3~7文字目がチェックリスト2(0123456789)の中にある
 ちょっと力技でしたが、回答の速さを優先しました。

 https://atcoder.jp/contests/abc281/submissions/37147996

3.C - Circular Playlist
 最近のC問題にしては簡単で拍子抜けしつつ、AC
 【考え方】
  1)TをリストAの合計で割った余りをchkTにセット
  2)曲リストの秒数を変数nowAに足していく
  3)nowAがchkTを超えた曲をAiとする
   nowAからchkTをマイナスした値を変数songにセット
   ansにAiの秒数から、songを引いたものをセット
  4)Aiの順番と、ansを出力

 https://atcoder.jp/contests/abc281/submissions/37154006

4.D - Max Multiple
 TLEだったDPで解くしかなさそうだなーと思いつつ
 頑張りましたが、時間切れ。
 結局解説を見るとDPで解いていたので
 やっぱりいい加減DPを使いこなせるようにならないとな・・・。

 【考え方1】
  単純に数列からK個抽出した場合の組み合わせを
  itertools.permutationsで列挙し、合計をリストに格納
  →格納したリストを大きい順にDで割り切れるかをチェック
   →案の定TLE
 【考え方2】
  permutationsをcombinationsで試す
  →LTEが4つ減るだけ
 【考え方3】
  列挙して合計をリストに格納する時点でDで割り切れるか判定
  →LTE減らず
 【考え方4】
  なぜか、抽出リストの和ではなく、積と考えて
  頓珍漢な解法に進んでいき時間切れ・・・。

 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