今日、私たちはクラスのクラシックタイトル整理として - テンプレートの半分の問題を、このような問題は、多くの場合、グループの競争の人気が増加し、しばしば困難として表示され、接触の初めに学生のための基礎を築くことが必要である、熟練した使用、レース後に我々はShoudaoqinlaiを行うことができます。
タイトル説明
問題のあるコードへのソリューション:
#include<iostream>
#include<string>
using namespace std;
int n,m;
//找出小于等于该值的最大值
long long a[100005],b[50005];
/*
bool binary_search(long long value){
int l=0,r=n-1;
while(l<r){
int mid=(l+r+1)/2;
if(a[mid]<=value){
l=mid;
}
else{
r=mid-1;
}
}
if(a[l]==value)
{
return true;
}
return false;
}
*/
//找出大于等于的最小值
bool binary_search(long long value){
int l=0,r=n-1;
while(l<r){
int mid=(l+r)/2;
if(a[mid]>=value){
r=mid;
}
else{
l=mid+1;
}
}
if(a[r]==value){
return true;
}
return false;
}
int main(){
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%lld",&a[i]);
}
scanf("%d",&m);
for(int i=0;i<m;i++){
scanf("%lld",&b[i]);
}
int ans=0;
for(int i=0;i<m;i++){
bool flag=binary_search(b[i]);
if(flag==true){
ans++;
}
}
printf("%d",ans);
return 0;
}