华师一附中OI组

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1536|回复: 2
打印 上一主题 下一主题

1894: 二分查找左侧边界

[复制链接]

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
跳转到指定楼层
楼主
发表于 2021-11-7 12:18:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
找自由边界
回复

使用道具 举报

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
沙发
 楼主| 发表于 2021-11-7 12:19:11 | 只看该作者
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int mn=1E5+10;
  4. int a[mn],i,n,q,x;
  5. int main()
  6. {
  7.         cin>>n;
  8.         for (i=1; i<=n; i++) cin>>a[i];
  9.         cin>>q;
  10.         while (q--)
  11.                 {
  12.                         cin>>x;
  13.                         int t=lower_bound(a+1,a+1+n,x)-a;
  14.                         if (a[t]==x)cout<<t;
  15.                         else cout<<-1;
  16.                         cout<<' ';
  17.                 }
  18.         return 0;
  19. }
复制代码
回复 支持 反对

使用道具 举报

738

主题

1485

帖子

5420

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5420
板凳
 楼主| 发表于 2021-11-7 12:24:06 | 只看该作者
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int mn=1E5+10;
  4. int a[mn],i,n,q,x;
  5. int main()
  6. {
  7.         cin>>n;
  8.         for (i=1; i<=n; i++) cin>>a[i];
  9.         cin>>q;
  10.         while (q--)
  11.                 {
  12.                         cin>>x;
  13.                         int l=1,r=n,ans=-1,m;
  14.                         while (l<=r)
  15.                                 {
  16.                                         m=(l+r)/2;
  17.                                         if (a[m]==x)
  18.                                                 {
  19.                                                         ans=m,r=m-1;
  20.                                                 }
  21.                                         else if (a[m]>x) r=m-1;
  22.                                         else if (a[m]<x) l=m+1;
  23.                                 }
  24.                         cout<<ans<<' ';
  25.                 }
  26.         return 0;
  27. }
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|服务支持:DZ动力|华师一附中OI组  

GMT+8, 2024-11-2 00:23 , Processed in 0.101259 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表