学习资料
1.A05 二分查找算法 最好的板子
2.A06 二分答案 最好的套路
3.算法讲解051【必备】二分答案法与相关题目
4.二分查找 红蓝染色法【基础算法精讲 04】
二分模板
P2249 【深基13.例1】查找
#include <iostream>using namespace std;const int N = 1e6 + 10;int n, m;
int a[N];int find(int x)
{int l = 0, r = n + 1;while (l + 1 < r){int mid = l + r >> 1;if (a[mid] >= x) r = mid;else l = mid;}return a[r] == x ? r : -1;
}int main()
{ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);cin >> n >> m;for (int i = 1; i <= n; i++) cin >> a[i];while (m--){int x;cin >> x;cout << find(x) << ' ';}return 0;
}