A8022.查找
2025-08-14 17:37:16
发布于:江苏
1阅读
0回复
0点赞
IO不加速+手搓二分
#include <iostream>
using namespace std;
const int maxn = 1e6;//n的最大值
int n, m, a[maxn+5];
int main() {
//输入数据
cin >> n >> m;
for (int i=1; i<=n; i++)
cin >> a[i];
while (m--) {
int q;
cin >> q;
//二分查找
int l=1, r=n, ans=-1;
while (l < r) {
int mid = l+r>>1;
if (a[mid] >= q) {
ans = mid;
r = mid;
}else {
l = mid+1;
}
}
if (a[ans] == q)
cout << ans << ' ';
else
cout << "-1 ";
}
return 0;
}
}
这里空空如也
有帮助,赞一个