poj 3685 Matrix 二分套二分

2021-06-26 19:38:32 字數 595 閱讀 8862

題意:說的很明確了。

思路:很經典的二分套二分,通過觀察表示式我們可以發現當j一定的時候,原表示式的值是跟i相關並且是單調的,所以我們可以二分答案m,然後統計比m小的數有多少個,在統計的時候需要先列舉j,然後再二分i,統計完成後,還需要判斷這個結果是否存在(即是否存在i,j使表示式的值等於m),為此我的做法是在統計<=m的數,如果<=m的數的個數大於整個演算法的複雜度是o(n*logn*longn) 這種二分再二分的思路是非常經典的~~~~。

code:

#include #include #include #define inf 10000005000

using namespace std;

typedef long long ll;

ll n,m;

ll cal(ll a,ll b)

bool judge(ll k)

res+=st;

if(res>=m) return true;

}return false;

}int main()

}printf("%lld\n",s);

}return 0;

}

POJ 3685(Matrix,二分搜尋)

題意 給定乙個 n n矩陣,其中aij i2 100000 i j 2 100000 j i j。求矩陣中第 k大的數。題解 自然的想法還是算出來所有的 aij,排序,然後二分找第 k大的數,時間複雜度又來打了o n2 肯定會超時。注意觀察aij i2 100000 i j 2 100000 j i...

POJ3685Matrix 二分套二分

傳送門 題目大意 n n的矩陣,a i j i i 100000 i j j 100000 j i j,求矩陣中第k小。n 5 10 4 題解 打個表,發現每一列從上往下單調遞增。在大範圍內二分搜尋,二分第k小為x,然後再二分找矩陣中有多少個比x小的數。include include include...

POJ 3685 Matrix 二分套二分

有乙個n階方陣,方正中第i行第j列的元素值為 d i 1e5 i j 1e5 j i j 我們需要找出這個方陣中第m小的元素值。分析這個公式,我們發現 當j固定的時候,這個公式關於i 取值範圍 從0到n 是單調增加的,所以這裡我們可以二分乙個答案,然後一列一列的找小於 等於 它的個數,這樣加起來我們...