社区讨论
五个RE
P2249【深基13.例1】查找参与者 2已保存回复 4
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 4 条
- 当前快照
- 1 份
- 快照标识符
- @lo9jjk7q
- 此快照首次捕获于
- 2023/10/28 12:27 2 年前
- 此快照最后确认于
- 2023/10/28 12:27 2 年前
人有点麻
C#include<iostream>
using namespace std;
int main()
{
int n = 0, m = 0;
cin >> n >> m;
int arr[100000];
for (int i = 0; i < n; i++)//放进到原数组中
{
cin >> arr[i];
}
int arr1[100000];//放一个比较数组
for (int i = 0; i < m; i++)
{
cin >> arr1[i];
}
int x = 0, y = n;//变成数组的范围内
int k = 0,j=0;
for(int i=0;i<m;i++)//询问次数
{
x = 0, y = n;
while (x < y)
{
j = x + (y - x >> 1);//中点一直在更新
if (arr[j] >= arr1[k])
{
y = j;
}
else if (arr[j] < arr1[k])
{
x = j + 1;
}
}
if (x == y && arr[x] != arr1[k])
{
k++;
if (k == m)
{
cout << "-1";
}
else
{
cout << "-1" << " ";
}
}
else
{
k++;
cout<< x+1<<" ";
}
}
return 0;
}
回复
共 4 条回复,欢迎继续交流。
正在加载回复...