0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

0.はじめに
 問題的にはどれもちょうどよい歯ごたえで
 Dまでギリギリ解け、心地よい達成感が得られました。
 レートアップを期待しましたが、+5と微増にとどまりました。

1.A - Water Station
 いろんなやり方ありそうだなと思いつつ
 以下の実装。
 Nに0~4を加算していき、5で割り切れるまでの回数(距離)と
 Nから1~4を減算していき、5で割り切れるまでの回数(距離)を
 比較して小さい方の距離の値を回答として出力。

 https://atcoder.jp/contests/abc305/submissions/42129905

2.B - ABCDEFG
 A~Gの各距離をリストにしてーと考え始めましたが
 どうせ何かをリスト登録しないといけないならと
 A~Gのスタートからの距離を辞書登録して
 絶対値を求めるというすっきりした実装にしました。

dict={"A":0,"B":3,"C":4,"D":8,"E":9,"F":14,"G":23}
p,q=input().split()
print(abs(dict[p]-dict[q]))

 https://atcoder.jp/contests/abc305/submissions/42134737

3.C - Snuke the Cookie Picker
 最初質問の意味がピンときませんでしたが
 入力例を見て分かりました。

 要は"."の上下左右の4方のうち、2方向が"#"であれば
 食べた跡だなと気づき、そのように実装しました。

 https://atcoder.jp/contests/abc305/submissions/42139441

4.D - Sleep Log
 1時間以上かけてやっとクリアできました。
 初めは、0~リストの最後の数までそれまでの睡眠時間を
 保存して~と、試してみましたがさすがに10の9乗は
 TLEだしメモリオーバーでした。

 うすうす2分探索しないといけないんだろうなと思い
 その線で再挑戦。

 まずは、リストAと、値Bを渡すと
 値Bがリストにある場合はそのアドレスをint型で
 ない場合は、値B前後のアドレスをtuple型で
 返す関数find_rangeを作成。

 次にリストAを元に、記録開始時刻から、リストの各値毎までの
 総睡眠時間を持つリストspを作成

 あとは、Q毎に、
 R時点までの開始からの総睡眠時間※から
 L時点までの開始からの総睡眠時間※を引いて出力
 で実装しました。

 ※R(L)時点までの開始からの総睡眠時間の求め方
  find_rangeに、リストAとR(L)を渡す。
  ・戻り値が、int型resultの時
   sp[result]が総睡眠時間
  ・戻り値が、tuple型start,endの時
   ・startが偶数の時・・L(R)時点では起きている
    起床後の状態=総睡眠時間はstart時点から
    増えないのでsp[start]が総睡眠時間
   ・startが奇数の時・・L(R)時点では寝ている
    ・Lの時
     sp[start]に、sp[start]~Lまでの睡眠時間を足した値
     が総睡眠時間
    ・Rの時
     sp[end]から、R~sp[end]までの睡眠時間を引いた値
     が総睡眠時間

 書いててもややこしいので時間がかかり、ギリギリで
 ACとなりました。
 
 https://atcoder.jp/contests/abc305/submissions/42163267

以上

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?