全RE,help!有思路
查看原帖
全RE,help!有思路
1138325
MC_dream_tsr楼主2024/8/20 13:40

新学二分查找,如果错得比较离谱勿喷,我的思路是已知C,将A看作B + C,B在1到n的循坏中枚举,接着用二分找A(不求AC代码,求改,谢谢

# include<bits/stdc++.h>
using namespace std;
const int kk = 200005;
int a[kk], ans;
int find(long long x){
	long long l = 1, r = pow(2, 30);
	while(l < r){
		long long mid = l + (r - l) / 2;
		if(a[mid] > x) r = mid;
		else l = mid + 1;
	}
	if(a[l] == x) return 1;
	else return 0;
}
int main(){
	int n, c;
	cin >> n >> c;
	for(int i = 1; i <= n; i++)
	    cin >> a[i];
	for(int i = 1; i <= n; i++){
		long long t = c + a[i];
		ans += find(t);
	}
	cout << ans;
	return 0;
}
2024/8/20 13:40
加载中...