您的位置:首页 > 产品设计 > UI/UE

UVa 11039 - Building designing

2013-04-02 10:22 295 查看
/*
n个绝对值不同的数,选出尽量多的数,拍成一个序列,使得正负交互,且绝对值递增。
贪心 首先按绝对值大小排序, 然后往后一个一个的数

*/
#include<stdio.h>
#include<math.h>
#include<algorithm>
using namespace std;

#define N 500000+10
double a
;

bool cmp(double a,double b)
{
return fabs(1.0*a)<fabs(1.0*b);
}

int main()
{
int t,n,i,count,j;
scanf("%d",&t);

while(t--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%lf",&a[i]);

sort(a,a+n,cmp);
//for(i=0;i<n;i++)
// printf("%d ",a[i]);
count=1;
for(i=1;i<n;i++)
{
/*for(j=i+1;j<n;j++)
{
if(a[i]<0 && a[j]<0)
continue;

else if(a[i]>0 && a[j]>0)
continue;
else
{
count++;
i=j;
}
}*/
if(a[i]*a[i-1]<0)
count++;

}
printf("%d\n",count);

}

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: