社区讨论

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 条回复,欢迎继续交流。

正在加载回复...