ABC 106 反省
A問題
解法
道を端っこに移動させるとの面積になります.
B問題
解法
制約が小さいのでまでの奇数について約数をすべて調べ, 8個のものをカウントします.
C問題
解法
回数が十分大きいので, 番目まで1が続くかどうかを調べ, 1でないものが出現したらその数を出力し, 1が続いていたときは1を出力します.
D問題
解法
まず愚直な解法を考えます. ある配列をすべて0に初期化して用意しておき, すべての について とし, それぞれの数をカウントしておきます.
あるクエリに対しては,
なるに対し,
が答えとなります.
この解法の計算量はとなり, TLEします.
この解法において,
を計算する部分は, あらかじめ配列の累積和をとっておくことでループを1つ減らすことができます.
具体的には, 下の式が成り立ちます.
これでとなるので, 間に合います.
感想
コンテスト中はいろいろ解法がごっちゃになり, ややこしいコードを書いていたらコンテストが終わっていました.
あきらかなTLEコードでも書いて実験して改良点を探す, ということができてないように思えた. 愚直解がだめとわかっていてもとりあえず作ってみてそこから考えてみる, というのが重要だと感じた.
あと個人的に累積やしゃくとりなどを用いて計算量を減らす問題が苦手だと感じた. 演習を増やしたい.