华师一附中OI组
标题:
1894: 二分查找左侧边界
[打印本页]
作者:
admin
时间:
2021-11-7 12:18
标题:
1894: 二分查找左侧边界
找自由边界
作者:
admin
时间:
2021-11-7 12:19
#include <bits/stdc++.h>
using namespace std;
const int mn=1E5+10;
int a[mn],i,n,q,x;
int main()
{
cin>>n;
for (i=1; i<=n; i++) cin>>a[i];
cin>>q;
while (q--)
{
cin>>x;
int t=lower_bound(a+1,a+1+n,x)-a;
if (a[t]==x)cout<<t;
else cout<<-1;
cout<<' ';
}
return 0;
}
复制代码
作者:
admin
时间:
2021-11-7 12:24
#include <bits/stdc++.h>
using namespace std;
const int mn=1E5+10;
int a[mn],i,n,q,x;
int main()
{
cin>>n;
for (i=1; i<=n; i++) cin>>a[i];
cin>>q;
while (q--)
{
cin>>x;
int l=1,r=n,ans=-1,m;
while (l<=r)
{
m=(l+r)/2;
if (a[m]==x)
{
ans=m,r=m-1;
}
else if (a[m]>x) r=m-1;
else if (a[m]<x) l=m+1;
}
cout<<ans<<' ';
}
return 0;
}
复制代码
欢迎光临 华师一附中OI组 (http://hsyit.cn/)
Powered by Discuz! X3.2