我太难了

P1102 A-B 数对

@[xia_xiaoxiao](/user/670303) 额,不是
by Yukinoshita_Yukino @ 2022-04-10 11:30:15


二分啊 @[xia_xiaoxiao](/user/670303)
by xzy090626 @ 2022-04-10 11:30:20


emmmmm...~~好像明白了~~好像没明白...
by J_T_R @ 2022-04-10 11:30:27


或者map
by Yukinoshita_Yukino @ 2022-04-10 11:30:29


读入也不是重点,主要是您的复杂度是错的
by xzy090626 @ 2022-04-10 11:30:56


嗯嗯嗯!!!~~我听着的呢!!!~~
by J_T_R @ 2022-04-10 11:31:06


cin改成scanf也没啥用,我试过
by yanghaorun2012 @ 2022-04-10 11:38:22


@[xia_xiaoxiao](/user/670303) 这是一个二分的题,暴力的话时间复杂度是$O(n^2)$,所以会超时
by hema5177 @ 2022-04-10 14:29:43


@[xia_xiaoxiao](/user/670303) 嗯,你这道题必须用数据结构或者二分,这也是为什么这道题的算法标签打的是二分
by Inscription_Assassin @ 2022-04-10 18:34:02


@xia_xiaoxiao这是一道二分题,如果不会可以学一下,也可以用STL的lower_bound()和upper_bound()去实现,可以给你看一下我的代码,参考一下。 ```cpp #include<iostream> #include<algorithm> using namespace std; long long n,c,a[200005],ans; int main(){ cin>>n>>c; for(long long i=0;i<n;i++)cin>>a[i]; sort(a,a+n); for(long long i=0;i<n;i++){ if((a[i]-c)<0)continue; long long x=a[i]-c; ans+=(upper_bound(a,a+n,x)-a)-(lower_bound(a,a+n,x)-a); } cout<<ans; return 0; } ```
by 最靓的哥 @ 2022-04-28 21:20:18


上一页 |