二分 XMU 1587 中位數

2021-07-16 19:07:49 字數 1186 閱讀 3746

題目大意

求兩個長度為n(n<=109)的有序序列合併後的中位數。序列中的數在long long範圍內

題目思路:

【二分】

一開始想貪心錯了給跪了。

因為序列長度相等,取中點比較大小,而後更新比較區間。如果x的中點小於y的中點,則中位數一定在x中點右側和y中點左側的合併序列中。

//

//by cool***

//#include#include#include#include#include#include#include#include#include#include#include#define min(a,b) ((a)<(b)?(a):(b))

#define max(a,b) ((a)>(b)?(a):(b))

#define abs(a) ((a)>0?(a):(-(a)))

#define lowbit(a) (a&(-a))

#define sqr(a) ((a)*(a))

#define swap(a,b) ((a)^=(b),(b)^=(a),(a)^=(b))

#define eps 1e-8

#define j 10

#define max 0x7f7f7f7f

#define pi 3.1415926535897

#define n 104

using namespace std;

int n,m,lll,ans,cas;

long long x,y,xx,yy,z,a1,a2,b1,b2,c1,c2,lx,ly,rx,ry,midx,midy;

long long f(long long a1,long long b1,long long c1,long long i)

void work()

else

}x=f(a1,b1,c1,lx);

y=f(a2,b2,c2,ly);

xx=f(a1,b1,c1,rx);

yy=f(a2,b2,c2,ry);

}int main()

return 0;}/*

////

*/

樹狀陣列 二分 中位數之中位數

給出乙個長度為 n 的序列 a 首先求出其所有區間的中位數,將這些中位數構成的集合記為 s 求 s 中所有數的中位數。此題中位數指 有 n 個數,第 left lfloor frac right rfloor 1 個數即為中位數。資料範圍 1 leq n leq 10 5,1 leq a i leq...

中位數(DP 二分)

單點時限 10.0 sec 記憶體限制 256 mb 你的地圖是一張白紙,所以即使想決定目的地,也不知道路在 qq 小方最近在自學圖論。他突然想出了乙個有趣的問題 一張由 n 個點,m 條邊構成的有向無環圖。每個點有點權 ai。qq 小方想知道所有起點為 1 終點為 n 的路徑中最大的中位數是多少。...

每日演算法 二分,中位數

題目 4.尋找兩個正序陣列的中位數 給定兩個大小為 m 和 n 的正序 從小到大 陣列 nums1 和 nums2。請你找出這兩個正序陣列的中位數,並且要求演算法的時間複雜度為 o log m n 你可以假設 nums1 和 nums2 不會同時為空。示例 1 nums1 1,3 nums2 2 則...