二分法

TopCoder SRM 546 Div1 Medium FavouriteDigits

問題 digit1という数字をcount1個以上含み、 digit2という数字をcount2個以上含む、N以上の最小の数を求めよ。 制約条件 0≦digit1, digit2≦9 count1+count2≦15 Nは10^15以下。 答えは必ずlong longに収まる。

TopCoder SRM 390 Div1 Medium PaintingBoards

問題 板が一列に並んでいて、それぞれの長さはboardLength[i]である。 何人かがこの板に色を塗る。 それぞれの人が一秒間に塗る板の長さはpainterSpeed[i]である。 それぞれの人は、一枚または連続する何枚かの板を担当することができる。 全ての板の色を塗…

TopCoder SRM 456 Div1 Medium CutSticks

問題 n本の棒があり、長さはそれぞれsticks[i]である。 これらの棒を最大C回切断した後で、K番目に長いものの長さの最大値を求めよ。 切断の前後で、棒の長さの和は等しく、切断した棒を再び切断することもできる。 また、最後の切断を終えた後で、棒はK本以…

TopCoder SRM 267 Div1 Hard HairCuts

問題 9:00amに開き5:00pmに閉まる床屋がある。 客の来る時間のリストが与えられる。 床屋は、客が来たときに誰もいなければ、その客の髪を切り、 誰かがいれば、先に来た客全員の髪を切り終えてからその客の髪を切る。 一人の客の散髪には最低5分の時間がか…

SRM 426 Div1 Medium CatchTheMice

問題概要 ネズミがたくさんいて、等速直線運動している。 それぞれの初期位置xp[i],yp[i]と初速度xv[i],yv[i]が与えられる。 任意の時間t≧0において正方形の檻を、辺が座標軸に平行になるように投げて、 全部のネズミを捕まえきれないようにしたい。 そのよ…

TopCoder Open Qual.1 Hard SequenceMerger

問題概要 与えられた数列の結び(和集合)をソートした数列において、n(n≦10億)番目の項を求めよ。数列の形式は以下の3つである。 等差数列 (初項・公差・項数が与えられる) 等比数列 (初項・公比・項数が与えられる) 例外 (各項が直接与えられる) 数列を…

SRM456 Div1Medium/Div2Hard

http://www.topcoder.com/stat?c=problem_statement&pm=10563&rd=13909 棒の集合から、長さt以上の棒をk本切り出せるか判定するのは O(n)でできるので、二分法を使えばO(n*log(Lmax))の時間で計算可能。 なんだけど、長さt以上の棒を切り出す数を数える変数…