51Nod 1001(陣列中和等於K的數對)

2021-08-23 14:12:26 字數 453 閱讀 9181

值得學習的是lower_bound的用法,作用是尋找陣列中第乙個大於等於某個數的位置,返回的是位置的位址,減去頭位址後返回的是陣列的下標。

使用形式:int p=lower_bound(a,a+n,ans)-a;

(1)p就是陣列a中大於等於ans這個數字的第乙個元素的下標。

(2)a是陣列名或陣列首位址,a,a+n指的是查詢的位址範圍。ans是目標的數字。 

#include#include#include#includeusing namespace std;

const int maxn=50005;

int num[maxn];

int n,k;

int main()

}if(flag)

printf("no solution\n");

return 0;

}

51nod1001 陣列中和等於k的數對

1001 陣列中和等於k的數對 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k 8,陣列a 所有和等於8的數對包括 1,9 0,8 2,6 3,5 input 第1...

51Nod 1001 陣列中和等於K的數對

給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k 8,陣列a 所有和等於8的數對包括 1,9 0,8 2,6 3,5 input 第1行 用空格隔開的2個數,k n,n為a陣列的長度。2 n 50000,10 9 k 10 9 第2 n 1行 a陣...

51Nod 1001 陣列中和等於K的數對

給出乙個整數k和乙個無序陣列a,a的元素為n個互不相同的整數,找出陣列a中所有和等於k的數對。例如k 8,陣列a 所有和等於8的數對包括 1,9 0,8 2,6 3,5 先將a進行排序,我們對a中的每個元素查詢對應的數對時,可以採用二分查詢,因為是順序排列了。剪枝 當a中的元素值的兩倍大於等於k時,...