本文主要是介绍hdu (2578) Dating with girls(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
此题应注意的是;
这n个数可能有相同的,所以把相同的留一个在这里,
#include<stdio.h>
#include<stdlib.h>
int cmp(const void*a,const void*b)
{
return *(int*)a-*(int*)b;
}
int main()
{
int m,n,i,j,k,h,low,hig,mid,p;
int a[100005],b[100005];
scanf("%d",&m);
while(m--)
{
scanf("%d%d",&k,&h);
for(i=0;i<k;i++)
scanf("%d",&a[i]);
qsort(a,k,sizeof(a[0]),cmp);
j=0;
for(i=0;i<k;i++)
{
if(a[i]!=a[i+1])
{
b[j]=a[i];
j++;
}
}
n=0;p=j;
for(i=0;i<p;i++)
{
low=0,hig=p-1;
while(low<=hig)
{
mid=(low+hig)/2;
if(b[mid]+b[i]==h)
{
n++;
break;
}
else if(b[i]+b[mid]>h)
{
hig=mid-1;
}
else
{
low=mid+1;
}
}
}
printf("%d\n",n);
}
return 0;
}
这篇关于hdu (2578) Dating with girls(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!