P1102第四个点TLEMLE
  • 板块题目总版
  • 楼主tyakasha
  • 当前回复0
  • 已保存回复0
  • 发布时间2021/11/26 21:23
  • 上次更新2023/11/3 23:31:56
查看原帖
P1102第四个点TLEMLE
520777
tyakasha楼主2021/11/26 21:23

代码:

#include<bits/stdc++.h>
using namespace std;
map<long long,long long> HASH;
long long N,A[2000005],C;
int main(){
	//freopen("A-B.in","r",stdin); 
    cin>>N>>C;
    long long Min=0x7fffffffffffffff,Max=0x8000000000000000; 
    for(int i=0;i<N;i++){
        cin>>A[i];
        HASH[A[i]]++;
        if(A[i]<Min) Min=A[i];
        if(A[i]>Max) Max=A[i];
    }
    //cout<<Min<<' '<<Max<<'\n';
    long long ans=0;
    for(int i=Min;i<=Max;i++){
        if(HASH[i-C]!=0 && HASH[i]!=0) {
			long long cheng=HASH[i]*HASH[i-C];
        	ans+=cheng;
    	}
    }
    /*or(int i=0;i<=10;i++) cout<<HASH[i]<<' ';
    cout<<'\xa';*/
    //cout<<HASH[1]<<' '<<HASH[2]<<' '<<HASH[1]*HASH[2]<<'\xa';
    cout<<ans;
	return 0; 
}

不开O2优化:https://www.luogu.com.cn/record/63649212

开O2优化: https://www.luogu.com.cn/record/63649512

2021/11/26 21:23
加载中...