2012-03-04
SRM 535 Div2
Easy (250) FoxAndIntegers
問題
- A-BとB-CとA+BとB+CからA、B、Cを求める。
方針
- 安全にいく
- (A-B)と(A+B)を足したら2Aになる。BとCも同様
- 2A、2B、2Cが偶数かつ、引数の条件を満たすかチェック
- https://github.com/firewood/topcoder/blob/master/srm_5xx/srm_535/FoxAndIntegers.cpp
Medium (500) FoxAndGCDLCM
問題
- 最大公約数Gと最小公倍数Lが与えられる。
- GとLを満たす数AとBの和の最小値を求める。
方針
- LがG未満とかのケースは不能としてはじく
- ぐぐるとA×B=G×Lだが、直接役には立たない
- 別の表現をするとA=x×G、B=y×G、x×y×G=L
- すなわちL÷G=x×y
- (xとyの和の最小値)×Gが答え
- xとyの組み合わせを因数分解して全探索するのは面倒
- 範囲は1~sqrt(x×y)、たかだか10^6だから全数探索すればいいや
- sample4が合わない
- AとBのGCDがGになるためには、xとyは互いに素、つまりxとyのGCDは1
- 合った!
- https://github.com/firewood/topcoder/blob/master/srm_5xx/srm_535/FoxAndGCDLCM.cpp
Hard (1000) FoxAndSorting
問題
- 0から1000000000000000000までの数を、桁の数値の和で、和が同じもの同士は辞書順で並べる。
- idx番目の数値を求める。
方針
- DPぽい
- analysisを写経
- [ある桁数以下][和がS]のテーブルを作成
- S未満までの位置がわかったら、1桁ずつ確定させていく
- その際、同じテーブルが使える
- これは自力で書くの無理
- https://github.com/firewood/topcoder/blob/master/srm_5xx/srm_535/FoxAndSorting.cpp
結果
oo- 240.45 + 296.80 = 537.25pt 63rd 1196 -> 1258
div1! 100位以内に入れればいいやと思ってたので目標はクリア。
easyは手抜き実装すると落ちるので、良いdiv2easyだと思った。実際偶数チェックしてない人とか、引数チェックをコピペミスしてちゃんと書けてない人とかいた。撃墜は遅くて間に合わなかった。
mediumは自信ないのでGCDとLCMをぐぐったら基本的すぎてあまり載ってなかった。和が最小になるのは、xy=aとx+y=bの接点ぽい感じでxとyが近い数になるとき。なのでsqrt(xy)から試行すればminで更新する必要ないかも。あとGCCには__gcdがあるのでそれ使えばよかったとか。点数はいまいちだけど最終的にはよかった。challengeは、単純なバグ持ちの人は即落とされて、バグってはいるけどサンプルは通るみたいな人だけ残ったので、控えた。
hardはopenしたけど全く見当がつかなかったので残り時間はmediumを見直した。
- 52 https://topcoder-g-hatena-ne-jp.jag-icpc.org/
- 2 http://www.google.co.jp/url?sa=t&rct=j&q=srm 534 div2&source=web&cd=1&ved=0CCQQFjAA&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120225/1330153505&ei=_nJYT-WjFfDCmQXZ0a2cDw&usg=AFQjCNFGOxZcr9SIWeLlFSoWcLbrm44s_g
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=srm 535&source=web&cd=4&ved=0CEUQFjAD&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120304/1330885241&ei=Qz9UT5SWNe_kmAXSpOm9Cg&usg=AFQjCNE8ofIfq-EQ7AW6IR9vW05H8b4rqA&sig2=9Vl9b5DmSZWXH1Q38ZlamA
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&cts=1330923891421&ved=0CC8QFjAB&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20111013/1318523868&ei=VklUT-2lNOqOmQX6rb28Cg&usg=AFQjCNF2NMLyisjCVFlPOdu7zWMeDdLPbw&sig2=lH82RzfIf6l1-Hl_Jr8xaQ
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=srm 535&source=web&cd=17&ved=0CGIQFjAGOAo&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120304/1330885241&ei=4YxUT_P8MYzPmAWx2bGxCg&usg=AFQjCNE8ofIfq-EQ7AW6IR9vW05H8b4rqA
- 1 https://topcoder-g-hatena-ne-jp.jag-icpc.org/diarylist
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=srm535&source=web&cd=25&ved=0CEcQFjAEOBQ&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120304/1330885241&ei=Sx9VT-jeH8H3mAW-x9mMCg&usg=AFQjCNE8ofIfq-EQ7AW6IR9vW05H8b4rqA
- 1 http://10.10.1.34:21128/block.cgi?urldata=http://www.google.co.jp/url?q=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120215/1329326256&sa=U&ei=dVBVT9TzLLLS4QSr69SrDQ&ved=0CCcQFjAB&usg=AFQjCNGLbhN0rMmZdLaHdbjeebZwDpd2aQ&ctgnum=1007&uid=&gid=-2&rcode=1&cip=10.60.36.21&keyword=
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=srm 526&source=web&cd=4&ved=0CEQQFjAD&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20111207/1323272747&ei=hnlVT-vBHMHMrQfpnYiNBw&usg=AFQjCNEpXGYQr6MHMvMBe3TWoFwr9q3PMg&sig2=HvFANsJphgHtAHYtTIyyjQ&cad=rja
- 1 http://www.google.co.jp/url?sa=t&rct=j&q=srm531&source=web&cd=3&ved=0CDoQFjAC&url=https://topcoder-g-hatena-ne-jp.jag-icpc.org/firewood/20120221/1329847766&ei=_sNVT7SPHs_nmAW6-sTYCQ&usg=AFQjCNFYC20qg4xybOC5pD1EnW-Vlbk8tQ