求求帮帮,#2~#4TLE,蟹蟹

P1102 A-B 数对

悬赏关注
by 123456zzr @ 2024-01-05 21:21:05


本题十二分,不是暴力
by danlao @ 2024-01-05 21:27:37


@[yaodiguoan](/user/1023793) 是二分
by danlao @ 2024-01-05 21:28:04


~~还是一道map的好题~~ ```cpp #include<bits/stdc++.h> using namespace std; inline int read() { int x=0,f=1; char ch=getchar(); while (ch<'0'||ch>'9') { if (ch=='-') f=-1; ch=getchar(); } while (ch>='0'&&ch<='9') { x=x*10+ch-48; ch=getchar(); } return x*f; } int n,c,a[200001]; long long ans; map<int,int>m; signed main(){ n=read(); c=read(); for(int i=1;i<=n;i++){ a[i]=read(); m[a[i]]++; a[i]-=c; } for(int i=1;i<=n;i++)ans+=m[a[i]]; cout<<ans<<endl; return 0; } ```
by kevin4 @ 2024-01-05 21:42:10


<https://www.luogu.com.cn/record/142014623> 你可以看到除了#2,#3,#4,#10以外跑得飞快
by kevin4 @ 2024-01-05 21:44:26


我#2也TLE了,但是其他都过了,很神奇 算来算去都觉得应该不会超时,我用的是C快速排序,然后二分找一段数字最前面的位置和最后面的位置,理论上是排序占了时间。如何解决?
by JDL_Seiran @ 2024-01-21 20:22:31


|