p1102A-B数对怎么做(用本蒟蒻能看懂的二分)
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复3
  • 已保存回复4
  • 发布时间2024/10/7 12:31
  • 上次更新2024/10/7 15:12:11
查看原帖
p1102A-B数对怎么做(用本蒟蒻能看懂的二分)
1013979
封禁用户楼主2024/10/7 12:31

我的代码,改对也行

#include<bits/stdc++.h> 
using namespace std;
const int N=1e6;
int a[N],n,m,k,o,cnt,b,c;
int f(int x)
{
	int l=1,r=n,ans=-1;
	while(l<=r)
	{
		int mid=l+(r-l)/2;
		if(a[mid]>x) r=mid-1;
	    else if(a[mid]<x) l=mid+1;
	    else
	    {
	    	ans=mid;
	    	r=mid-1;
	    }
	}
    return ans;
}
int main()
{
	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
	cin>>n>>c;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	    b=i;
	}
	sort(a+1,a+n+1);
	b=a[b];
	for(int i=c;i<=b;i++)
	{
		k=i;
		o=k-c;
		if(f(o)!=-1)
		{
			cnt++;
		}
	}
	cout<<cnt;
	return 0;
}
2024/10/7 12:31
加载中...