超时了!找大佬帮忙优化一下

P1102 A-B 数对

- 你确定 $\mathcal O(n^2)$ 能过?仔细看数据范围。 - 仔细看数据范围,这数组只定义 $100$,不 RE 还怪了。 - 数组 $b$ 是干什么用的?
by 2021zjhs005 @ 2024-03-19 17:21:39


AC代码求关 ```cpp #include<bits/stdc++.h> using namespace std; using namespace std; typedef long long LL; LL a[200001]; map<LL,LL> m; int main() { int n; LL c; LL ans=0; cin >> n >> c; for(int i=1;i<=n;i++) { cin >> a[i]; m[a[i]]++; a[i]-=c; } for(int i=1;i<=n;i++) ans+=m[a[i]]; cout << ans << endl; return 0; }
by HEROBRINEH @ 2024-03-19 17:34:20


@[liiiiiih](/user/1290417) ```cpp #include <bits/stdc++.h> using namespace std; long long a[2000005]; int main(){ long long n,C,ans=0; cin>>n>>C; for(int i=1;i<=n;i++){ cin>>a[i]; } sort(a+1,a+n+1); for(int i=1;i<=n;i++){ long long A=a[i]; long long B=A-C; long long p1=lower_bound(a+1,a+n+1,B)-a; long long p2=upper_bound(a+1,a+n+1,B)-a-1; ans+=p2-p1+1; } cout<<ans; return 0; } ``` 求关
by wei2013 @ 2024-03-19 17:54:14


|