給出一組數, 驗證這些數中是否有兩個數的和為s
多組資料,每組資料兩行,第一行是兩個整數,n(n <= 100,000)和s(0 <= s < 2^32)。第二行將有n個整數a1, a2, ..., an(0 <= ai < 2^32, 1 <= i <= n),數字之間用空格隔開。
每組資料輸出一行,僅乙個數字,代表有多少不同的有序數字對(ai, aj),使得ai + aj == s。
5 41 2 3 4 5
6 63 3 3 3 3 2
31
樣例一:(1,3)(2,2)(3,1)樣例二:(3,3)此題主要是二分的運用,恰當的運用才能更好地去解答這一題,此題我的思路就是從大到小搜尋,不過最大值得借助upper_bound函式先求出來,在乙個個遍歷,每次遍歷時再去運用二分,具體查詢,特別注意是可能會出現相同數字,所以遍歷過程中得一一排除掉,不過,最初的排序可別忘嘍!一下附上**僅供參考:
#include #include#include#includeusing namespace std;
int a[100100];
int er(int n,int a,int b,int x)
else if(n[mid]>x)
high=mid-1;
else
low=mid+1;
}if(flag==0)
return -1;
else return 0;
}int main()
cout<
找數字 遞迴,二分查詢
題目 在一從大到小排序的序列中用遞迴找乙個數在不在這序列,在輸出yes,不在輸出no 這題用了二分查詢的遞迴實現 思路 把陣列和變數都變成全域性變數方便遞迴函式修改 然後如果不可能就跳出迴圈 如果可能但現在沒找到就縮小範圍進入下乙個遞迴過程 如果找到了就輸出 includeusing namespa...
1128 二分 二分查詢
時間限制 10000ms 單點時限 1000ms 記憶體限制 256mb 描述nettle最近在玩 艦 因此nettle收集了很多很多的船 這裡我們假設nettle氪了很多金,開了無數個船位 去除掉重複的船之後,還剩下n 1 n 1,000,000 種不同的船。每一艘船有乙個稀有值,任意兩艘船的稀有...
二分(二分答案 二分搜尋)與單調性
經典二分搜尋是二分空間範圍。二分答案又叫二分猜值,是二分解的值空間。其實可以統一,普通的二分搜尋也是二分答案值域 下標空間,也是猜值。二分必須滿足單調性,最直觀的,二分搜尋只能在有序陣列上進行。單調性體現在,下標和元素值是單調的,也就是 if j i 有 a j a i 一般二分答案解決的問題是最優...