社区讨论
80 1TLE求条
P2249【深基13.例1】查找参与者 2已保存回复 1
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 1 条
- 当前快照
- 1 份
- 快照标识符
- @mhj3d4kw
- 此快照首次捕获于
- 2025/11/03 20:03 4 个月前
- 此快照最后确认于
- 2025/11/03 20:03 4 个月前
c++ :
CPP#include <bits/stdc++.h>
using namespace std;
int high,x[1000010];
bool o=1;
int cha(int w){
high++;
int mid,low=1,i=0;
mid=(high+low)/2;
if(o) return 1;
while((x[mid] != w && high > low)||i==0){
if(x[mid]>w)
high=mid-1;
if(x[mid]<w)
low=mid+1;
mid=(high+low)/2;
if(x[mid]==w){
while(mid>1){
if(x[mid-1]==w) mid--;
else break;
}
}
i++;
}
if(x[mid]==w) return mid;
if(high<low) return -1;
}
int main(){
int n,m;
cin>>n>>m;
int w;
cin>>x[1];
int p=x[1];
for(int i=2;i<=n;i++){
cin>>x[i];
if(p!=x[i]) o=0;
}
for(int i=1;i<=m;i++){
high=n;
cin>>w;
printf("%d ",cha(w));
}
return 0;
}
求条AWA
回复
共 1 条回复,欢迎继续交流。
正在加载回复...