请求数据加强
  • 板块P1102 A-B 数对
  • 楼主zzuxx
  • 当前回复2
  • 已保存回复3
  • 发布时间2025/1/6 16:26
  • 上次更新2025/1/6 18:21:24
查看原帖
请求数据加强
1256453
zzuxx楼主2025/1/6 16:26

这版n ^ 2的代码过了,n = 2e5, c = 2时,数据为2e5 - 1个2和一个4,这样会卡到n ^ 2

#include<bits/stdc++.h>

using namespace std;



int main()
{int n,c;
    int a[200005];
    scanf("%d%d",&n,&c);
    for(int i = 1; i <= n; ++i)
        scanf("%d",&a[i]);
    sort(a+1,a+1+n);
    long long ans = 0;
    int l = 1,r = 1;
    for(int i = 1; i <= n; ++i){
        while(l<=n&&a[l]-a[i]<c)
            ++l;
        while(r<=n&&a[r]-a[i]<=c)
            ++r;
        if(a[l]-a[i]==c&&a[r-1]-a[i]==c)
            ans += r-l;
    }
    printf("%lld",ans);
    return 0;
}
2025/1/6 16:26
加载中...