れとろのメモ置場

とあるSEのメモ置場

キーエンスプログラミングコンテスト2021-Nov. (AtCoder Beginner Contest 227)

キーエンスプログラミングコンテスト2021-Nov. (AtCoder Beginner Contest 227)に参加しました。

結果

A,B,C問題の3問正解でパフォーマンスが784でした。
全体的に難しかった気がする。

A - Last Card

簡単に言うと1~Nが循環する中でA+Kをすれば良い問題。剰余計算を使えば楽。もしくはAにループでK回+1しつつNを越えたら1に戻す。

B - KEYENCE building

S _ {i}の最大値が1000で計算式には4abの項があるのでa,bの探索範囲は1~250くらいで良さそう。これくらいならa,bの全組み合わせを計算しても時間は十分間に合う。
なのでまずはa,b全通りを計算して算出可能な面積を全通り求めて、算出不可能なS _ {i}の値が何個あるのかを数える。

C - ABC conjecture

制約的を見ると N \leq 10 ^ {11}とあるのでA,B,Cの3重ループで全通りの計算は時間がかかりすぎる。
こんなときはA,Bの2重ループにしつつ、Cは計算して値を求めるのがよくあるやり方なので2重ループで処理をする。
A \leq B \leq CかつABC \leq NなのでAの探索範囲は1~Nの立方根までで良くて(それ以上はABCがNを超える)、Bの探索範囲はA~ \frac{N}{AB}で良い(AB^{2}がN以下になるように)。 この範囲でA、Bを全探索しつつ、B~ \frac{N}{AB}までCが答えとしてありえるので数えていく。

D - Project Planning

解けなかった…
作れるプロジェクト数の最大値を二分探索で探せば良さそうなのは思いついた。ただX個のプロジェクトを作れるかどうかを判断する方法がわからなかった。