P2249 【深基13.例1】查找(AC) 2022.1.28
生活随笔
收集整理的這篇文章主要介紹了
P2249 【深基13.例1】查找(AC) 2022.1.28
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
https://www.luogu.com.cn/problem/P2249
#include <bits/stdc++.h> using namespace std;//https://www.luogu.com.cn/problem/P2249 //P2249 【深基13.例1】查找int n,m,a[10000005],b,l,r,mid; bool flag;int main( void ) {a[0]=-1;//必須賦值成負數,否則點1過不了 cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];//輸入 }for(int i=1;i<=m;i++){cin>>b;//要找的數 l=1,r=n;//范圍 flag=1;//標記是否找到 while(l<=r){mid=(l+r)/2;//中點 if(b==a[mid])//找到了 {if(b==a[mid-1])//如果前面有同樣的數得繼續找(不能用線性否則會超時) r=mid+1;else//如果前面沒了就輸出 {flag=0;//標記找到 cout<<mid<<' ';break;}}if(b>a[mid])//如果小了就往后找 {l=mid+1;}else//大了就往前找 {r=mid-1;}}if(flag)//沒有找到就輸出-1 {cout<<"-1 ";}}return 0; }總結
以上是生活随笔為你收集整理的P2249 【深基13.例1】查找(AC) 2022.1.28的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基础省选+NOI-第2部分 数据结构进阶
- 下一篇: sql查看视图字段信息_高级(视图 索引