1
0

0.はじめに

 先週のABCで700台に復帰したと思いきやその後のARCで
 一つも回答できず、レート-44の667と大幅ダウンを鞍って迎えた今回。
 A~Cしか解けずにレート-2の665と停滞しました。
 ここら辺がまぁ今の実力なのかと思います。
 9月からARCのレートが変わる為、ARCで一発逆転が狙えなくなるので
 地道にABCを積み重ねて行きます。

1.A - 369

 Aの難易度が上がっている気がする今日この頃。
 結果的には6分くらいで解けているのでまぁ、小手調べとしてはちょうどいいのかも。

 【考え方】
  ・ABの差からC1・A・B、A・C2・B、A・B・C3の3種類の等差数列を
   求め、C1、C2、C3の種類数を求める。
 【実装】
  ・とりあえずA≦Bに整える
  ・AとBの差Cを求める
  ・C1は、A-C
  ・C3は、B+C
  ・C1とC3が同じなら、答えは1種類
  ・異なる場合は、答えは2種類か3種類
   →Cが2で割り切れればC2が整数となるので
    答えは3種類
   →Cが2で割り切れなければC2が整数ではないので
    答えは2種類
 練り込めばもう少しスマートに出来そうでしたが回答速度優先で
 AC頂けました。

 https://atcoder.jp/contests/abc369/submissions/57280211

2.B - Piano 3

 Aが難しかったのでBもシミュレーションしないといけないのか?
 と思いましたが、そこまで難しい話ではなかったです。

 右手用と左手用の移動数と、前の手の位置を保持しておき、
 それぞれの手の移動数を計算し、最後に足し合わせて表示で
 ACとなりました。

 各手始めに押す時は、移動数は0となる部分だけ少し工夫が必要な
 だけで、そこまで難しくはない問題でした。

 https://atcoder.jp/contests/abc369/submissions/57287315

3.C - Count Arithmetic Subarrays

 なんとなくどこかで見たような問題。
 まずは、数列の長さが1の場合のNケースと2の場合のN-1ケースは
 保証される。
 あとは、数列内の等差数列が3個続く場合、+1、4個続く場合+3
 5個続く場合+6と、等差数列の数をNとした場合(N-2)×(N-1)/2を
 足し込めば答えが求まりました。

 https://atcoder.jp/contests/abc369/submissions/57300559

4.D - Bonus EXP

 解答例をみて屋っと解けました。
 DP何だろうなとは思いましたが、DPになれていない為か
 DPのパターン分けを
 「k 匹目までのモンスターと出会い、偶数(0 を含む)匹倒した時に得られる経験値の最大値」
 「k 匹目までのモンスターと出会い、奇数匹倒した時に得られる経験値の最大値」
 とすれば良いことに気づけませんでした。
 ここら辺は数こなせば何とかなるものなのか・・・。

 https://atcoder.jp/contests/abc369/submissions/57332346

以上

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