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

UVA 11039 Building designing .

2016-10-20 13:47 239 查看
题目地址:http://vjudge.net/problem/UVA-11039

一开始还以为是LIS,发现不分先后顺序

直接排序然后扫一下就好了

#include <bits/stdc++.h>
using namespace std;
#define REP(i,a,b) for(int i=a;i<=(b);++i)
#define REPD(i,a,b) for(int i=a;i>=(b);--i)
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define sign(n) (n>0?1:-1)
const int maxn=500000+5;
int A[maxn];
bool cmp(int i,int j){
return abs(i)<abs(j);
}
int main(int argc, char const *argv[])
{
int T; scanf("%d",&T);
while(T--){
int n;
scanf("%d",&n);
REP(i,1,n) scanf("%d",&A[i]);
sort(A+1,A+1+n,cmp);
int last=A[1],ans=1;
REP(i,2,n) {
if(sign(last)==sign(A[i])) continue;
else{
ans++;
last=A[i];
}
}
printf("%d\n", ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: