二分,討論(Median,HDU 5857)

2021-08-04 05:02:26 字數 742 閱讀 6054

感覺這場多校的題目不是小學數學就是初中英語,而且我都不會。。

我用二分做的,wa了很久,最後靠對拍過的。

如果用二分做的話細節太多了,很容易出錯。

看到網上大部分解法都是討論。

以後應該要給自己找乙個實現起來比較簡單的演算法。

**

#include

#include

using

namespace

std;

const

int maxn = 100010;

int n,m,l1,r1,l2,r2;

int a[maxn];

double

handle

() int k;

int m = l+((r-l)>>1)-1;

if(!((l1<=m&&m<=r1)||(l2<=m&&m<=r2))) m=min(r1,r2);

int num = min(max(0,m-l1+1),r1-l1+1)+min(max(0,m-l2+1),r2-l2+1);

if((l1<=l&&l<=r1)&&(l2<=l&&l<=r2)&&numelse k=m;

if((r1-l1+1+r2-l2+1)&1) return a[k];

else

else

return a[k];

}}void

solve()}

intmain

()

二分搜尋及其變形討論

最近刷leetcode的時候遇到了不少二分查詢的題,二分查詢是非常高效的查詢策略,但是有乙個前提就是陣列必須是有序的。1.對於標準的二分搜尋,針對的是沒有重複元素的有序陣列,每個元素只出現一次。標準的二分搜尋的 很簡潔,對於程式設計師來講最好會背 int std binary search int ...

討論1 5 分析「二分法」

目錄 1.題目 2.分析過程 3.源 4.執行結果 查詢演算法中的 二分法 是這樣定義的 給定n個從小到大排好序的整數序列list,以及某待查詢整數x,我們的目標是找到x在list中的下標。即若有list i x,則返回i 否則返回 1表示沒有找到。二分法是先找到序列的中點list m 與x進行比較...

1128 二分 二分查詢

時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...