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でてこずり
 結局2問正解と惨敗。 
 レートは-23の707とまたまた後退してしまいました。

1. A - I'm a teapot

 最後がteaかを判断する問題。
 素直に文字列Sから、最後の3文字(N-3文字目以降の3文字)を
 取り出して判断する形で解けました。

 https://atcoder.jp/contests/abc418/submissions/68312283

2.B - You're a teapot

 B問題なので、全ケース総当たりで行けるやろと取り組みました。
 【考え方】
  ・充填率計算の起点を、文字列Sの先頭から後ろから3文字目まで(充填率は3文字ないと測れない為)ずらしつつ調べる
   ~以下起点毎の処理(起点がtの時のみ処理)~
   ・起点の次の文字がtの時、x(ソースではc)に2を、違うときは1をセット
   ・起点から2文字目以降Sの最後まで参照しつつ以下の処理
    ・参照した文字がtの時cに1加算
    ・変数ans(初期値0)とCから2を引いた値を起点から参照している文字までの数-1で割った数の
     大きい方をansにセット
  ・最後にansを出力して終了
 提出したソースコード的には無駄な判断ももありましたがACとなりました。

 https://atcoder.jp/contests/abc418/submissions/68326042

3.C - Flush

 Cの割に難しいなと思ったら350点問題。
 なんとか時間一杯頑張ったけど、TLEもWAも消せずに終了。
 考え方自体はあっていたけど、高速化の工夫が足りなかった感じでした。

 【考え方】
  ・B=1の時は答えは1
  ・全フレーバーのティーバック数がB以上の場合
   答えは、N*(B-1)+1
  ・一部フレーバー(t)のティーバック数はB未満、かつ一部フレーバーのティーバック(u)がB以上の場合
   答えは、tのフレーバーのティーバック数合計+u*(B-1)+1
  ・全フレーバーのティーバック数がB未満の時、答えは-1

 上記考え方の実装として、ティーバック数毎のフレーバー数をリスト化し2分探索で
 該当難易度の答えを割り出す方式を実装しましたが、TLEになるわ、WAになるわで終了。

 コンテスト後解説を見て、難易度ごとの答えをあらかじめすべて計算しておき
 あとは質問毎にそれを出力すればよい事を学びました・・・。

 https://atcoder.jp/contests/abc418/submissions/68384689

以上

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?