二分查找函數
有兩個函數
lower_bound:查找大于等于x的最小值所在地址
upper_bound:查找大于x的最小值所在地址
這兩個函數都在頭文件
#include<algorithm>
em事實上并不太用vector,之前的經歷讓我對它沒有什么太大的好感,雖然不排斥
沖著書想了想,感覺vector的有點麻煩,況且馬上就AFO了,就不弄了
代碼:
#include<iostream> #include<cstdio> #include<algorithm> #define NUM 1000010 #define FOR(a,b,c) for( int a = b;a <= c;a++ ) using namespace std; int n,m; int a[NUM]; int main(){ cin >> n >> m; FOR( i,1,n ) cin >> a[i]; int x; FOR( i,1,m ){ cin >> x; int p = lower_bound( a+1,a+n+1,x )-a; if( a[p] == x ) cout << p << " "; else cout << -1 << " "; } return 0; }
剛才又試了試upper_bound,感覺不如lower_bound好使,心里有數
附:
果然這個博客不是最后一篇啊(笑)
一會可能還會寫幾份板子的博客
NOIP RP++

浙公網安備 33010602011771號