nyoj+二分函数lower_bound+大数组的注意事项

来源:互联网 发布:alpine linux 添加源 编辑:程序博客网 时间:2024/06/06 03:13
点击打开链接
///数组开的时候要注意大小,一般要开成全局(局部栈很小)#include<iostream>#include<stdio.h>#include<stdlib.h>#include<string.h>#include<cstring>#include<string>#include<algorithm>#include<vector>using namespace std;int main(){    vector<int>a,b;    int m=0,n=0,i=0,num=0;    cin>>m>>n;    for(i=0; i<m; i++)     {         scanf("%d",&num);         a.push_back(num);     }    sort(a.begin(),a.end());    for(i=0; i<n; i++)    {        scanf("%d",&num);        b.push_back(num);    }    for(i=0; i<n; i++)    {        int p=lower_bound(a.begin(),a.end(),b[i])-a.begin();///lower_bound函数查找,前闭后开区间进行二分查找,返回大于或等于val的第一个元素的位置(包括最后一个位置+1)        if (a[p]==b[i])            cout<<"YES"<<endl;        else            cout<<"NO"<<endl;    }    return 0;}

0 0
原创粉丝点击