2,3 是TLE求佬解决
  • 板块P1102 A-B 数对
  • 楼主DKNOW
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/2/1 20:34
  • 上次更新2023/10/24 02:10:00
查看原帖
2,3 是TLE求佬解决
904352
DKNOW楼主2023/2/1 20:34
#include<iostream>
#include<algorithm>
#define S 200010
using namespace std;
long long int ans=0;
int a[S]={0};
void A(int i,int j,int x)
{
    if(a[i]>x||a[j]<x||j<i) return;
    if(j-i<=1)
    {
        if(a[i]==x) ans++;
        if(a[j]==x) ans++;
        if(i==j) ans--;
        return;
    }
    int part=(j+i)/2;
    if(a[part]>=x) A(i,part-1,x);
    if(a[part]<=x) A(part+1,j,x);
    if(a[part]==x) ans++;
}
int main()
{
    int n,c;
    scanf("%d%d",&n,&c);
    for(int i=1;i<=n;i++) scanf("%d",&a[i]);
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++) A(1,n,a[i]+c);
    cout<<ans;
    return 0;
}

2023/2/1 20:34
加载中...