ARC079 E: Decrease (Judge ver.)
解き方
- 1回の操作で、数列の総和は
-1
される- 操作回数は最低でも
- 回操作をすると、総和が0になるのでこれが操作回数の上限になる(多分)
K
回の操作後、条件を満たすかどうかは全体を+K
したあと、K
回どれかの要素を-N-1
する操作と考えればO(N)
で判断可能- ARC075 Dと同じような考え方
- 最初に上げた値の範囲全部を調べていけば
O(N^3)
で判定できる
ハマったところ
- ARC075 Dと類似であることを認識するまでにまず時間がかかった気がする
- 二分探索を構築できないか迷った時間は結果的には無駄だった
ARC079 D: Decrease (Contestant ver.)
解き方
- Nは50に固定しておき、とりあえず
N-1+K/N
をN個並べる - K%Nとかを使って数字を調整すれば構成できる
ハマったところ
- 素直に構成できたが、自信を持てず時間を無駄にしたみたいなところがある
ARC079 C: Cat Snuke and a Voyage
解き方
1
から1回で行けるところ、N
に1回で行けるところを列挙し、重複があるかどうか調査
ハマったところ
- 順調に解けた気がする
DeepCoder追実装記録 (3)
前回まで
mhiroaki.hatenablog.com mhiroaki.hatenablog.com
学習
前回20万件で駄目だったので、データセットのサイズを増やしていく
N=60万
N=100万
N=200万
N=200万で、学習時間は10時間強 (p2.xlargeインスタンス)だった。
今後
- データセットのサイズを増やす必要がまだありそうな気もする(400万~くらい)が、評価に移る
- 趣味の追実装であることを考えるとこのくらいで良いかなという気分
AGC018 B: Sports Festival
解き方
- 全競技を実施すると仮定して、そこから参加人数が多いものを消していく貪欲
ハマったところ
- 実施競技0から増やしていく貪欲がWAになったあと諦めた
- 逆からの貪欲くらいは試してみるべきだった
AGC018 A: Getting Difference
解き方
- すべての数の最大公約数を求めて、その倍数かどうかで判定
ハマったところ
- gcdの実装再確認に時間をかけた
- gcdを求めれば良いことに確信を持つまでに時間がかかった。