二分kth,答案满足的条件为:m ≤ 小于等于x的值数cntx。x和cntx单调不减,随着x增大,条件成立可表示为:0001111。
本地打一个小型的表可以发现列编号j固定时候,目标函数f(i,j)似乎具有单调性。
变形,f(i,j) = (i+100000+j)*i + j2 - 100000,可以看出确实具有单调性。
于是得到如下算法: 二分x,统计cnt时候,枚举j,再套一个二分。
/********************************************************** ------------------ ** author AbyssalFish ***********************************************************/#include #include #include #include #include #include #include #include #include