洛谷:P1102 A-B 数对(二分,普及-)

题目:

分析:和二分没什么关系吧。

代码:错了,为什么呢? 超int了,改为long long过了。

#include
using namespace std;
set<int> s;
map<int,int> m;
int c;//差值 
int main()
{
 int cc;
 cin>>cc>>c;
 for(int i=0;i<cc;i++)
 {
  int a;
  cin>>a;
  m[a]++;
  s.insert(a);
 }
 int all=0;
 for(set<int>::iterator it=s.begin() ;it!=s.end();it++)
    {
        all+=m[*it-c]*m[*it];
    }
    cout<<all;
 } 

题解的,这样省空间,费时间:

洛谷:P1102 A-B 数对(二分,普及-)_第1张图片

你可能感兴趣的:(二分)