題目大意:
給你n個數,然後問你有多少對滿足如下的條件:
i 和 j 只能用一次,並且滿足|a[i]-a[j]| >=z.
具體思路:
首先對陣列從小到大進行排序,然後二分取前k個和後面k個去匹配,找乙個最大值就好了。
一開始我的思路是對於當前這個數,找第乙個滿足 >= 這個數+z的值,然後不停的往下去找,結果看了部落格之後,發現這個樣例就過不去。
4 3
1 4 5 7
我的方法是1和4去匹配,然後5和7就匹配不了了,所以這個方法是錯誤的。
ac**:
1 #include2using
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 一般二分答案解決的問題是最優...