求助二分
  • 板块灌水区
  • 楼主_QrSn_
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/1/18 11:50
  • 上次更新2023/10/28 12:04:22
查看原帖
求助二分
511253
_QrSn_楼主2022/1/18 11:50

本人刚自学二分

题目连接:link

Code:

#include<iostream>
using namespace std;
int n, m, a[100001], b;
int ef(int zy, int l, int r)
{
	if (l == r)
	{
		if (a[l] == zy)return l;
		else return -1;
	}
	int z = (l + r) / 2;
	if (a[z] <= zy)ef(zy, l, z);
	else if (a[z] > zy)ef(zy, z + 1, r);
}
int main()
{
	cin >> n >> m;
	for (int i = 1; i <= n; i++)
	{
		cin >> a[i];
	}
	for (int i = 1; i <= m; i++)
	{
		cin >> b;
		cout << ef(b, 1, n) << " ";
	}
	return 0;
}

全部输出1-1

2022/1/18 11:50
加载中...