hdu 2578

来源:互联网 发布:微信小视频插图软件 编辑:程序博客网 时间:2024/06/18 10:20
#include <iostream>//二分+排序。。。简单题#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <vector>#include <list>#include <cstdlib>#define LL long long#define M 100000+10using namespace std;int a[M];int main(){    int t;    scanf("%d",&t);    while(t--)    {        int n,k,count=0;        scanf("%d%d",&n,&k);        for(int i=0; i<n; i++)            scanf("%d",&a[i]);        sort(a,a+n);        for(int i=0; i<n; i++)        {            int l=0,r=n-1;            while(r>l)            {                int mid=l+(r-l)/2;                if(a[i]+a[mid]>k)                    r=mid-1;                else if(a[i]+a[mid]<k)                    l=mid+1;                else {l=mid;break;}            }            if(a[i]+a[l]==k)            {                count++;                if(i==0){}                else if(a[i]==a[i-1])                    count--;            }        }        cout<<count<<endl;    }    return 0;}

0 0
原创粉丝点击