2016-06-14
SRM 677
https://competitiveprogramming.info/topcoder/srm/round/16627/div/1
Div1 Easy (300) DoubleOrOneEasy
問題
- 数aとbが与えられる
- 一回の操作で+1または2倍にできる
- 数aをnewAに、数bをnewBにするための最小操作回数を求める
方針
- (newB-newA)÷(b-a)をもとに、2倍の操作を何回やったか求めて、割っていく
- Challenge Succeeded
- (終了後)
- a <= bとなるように交換する
- newAが奇数でaが偶数なら-1、両方偶数でnewA/2-a <= newB/2-bが成り立つなら半分にする
- 残りは(newA-a)だけ減らす
- 一致すればOK
- https://github.com/firewood/topcoder/blob/master/srm_6xx/srm_677/DoubleOrOneEasy.cpp
結果
x-- +1 50pt 163rd/420 rating 1299 -> 1380 (+81)
a==bで死んだけど1撃墜。
2015年はかろうじてdiv1を維持できた。