C Match Points 二分 貪心

2022-03-05 15:39:44 字數 1061 閱讀 8041

題目大意:

給你n個數,然後問你有多少對滿足如下的條件:

i 和 j 只能用一次,並且滿足|a[i]-a[j]| >=z.

具體思路:

首先對陣列從小到大進行排序,然後二分取前k個和後面k個去匹配,找乙個最大值就好了。

一開始我的思路是對於當前這個數,找第乙個滿足 >= 這個數+z的值,然後不停的往下去找,結果看了部落格之後,發現這個樣例就過不去。

4 3

1 4 5 7

我的方法是1和4去匹配,然後5和7就匹配不了了,所以這個方法是錯誤的。

ac**:

1 #include2

using

namespace

std;

3 # define ll long

long

4const

int maxn = 2e5+100;5

inta[maxn];

6int

n,z;

7bool check(int

pos)817

return

true;18

}19intmain()

2028 sort(a+1,a+n+1

);29

int l=0,r=(n>>1),ans=0

;// 注意右邊界,必須保證每個數只能用一次

30while(l<=r)

3138

else

39 r=mid-1;40

}41 printf("

%d\n

",ans);

42 }

nyoj914Yougth的最大化 二分 貪心

時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 yougth現在有n個物品的重量和價值分別是wi和vi,你能幫他從中選出k個物品使得單位重量的價值最大嗎?輸入 有多組測試資料 每組測試資料第一行有兩個數n和k,接下來一行有n個數wi和vi。1 k n 10000 1 wi,v...

1128 二分 二分查詢

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

二分(二分答案 二分搜尋)與單調性

經典二分搜尋是二分空間範圍。二分答案又叫二分猜值,是二分解的值空間。其實可以統一,普通的二分搜尋也是二分答案值域 下標空間,也是猜值。二分必須滿足單調性,最直觀的,二分搜尋只能在有序陣列上進行。單調性體現在,下標和元素值是單調的,也就是 if j i 有 a j a i 一般二分答案解決的問題是最優...