UVA - 11039 B - Building designing

Posted 浅忆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UVA - 11039 B - Building designing相关的知识,希望对你有一定的参考价值。

https://odzkskevi.qnssl.com/516b2b3ad824ada50248f23d20f53083?v=1502089438

 

 

 1 /*
 2 n个绝对值各不相同的非0整数,选出尽量多的数,排成一个序列,使得正负号交替且绝对值递增
 3 */
 4 #include <iostream>
 5 #include <string.h>
 6 #include <stdio.h>
 7 #include <algorithm>
 8 using namespace std;
 9 const int N=500005;
10 int t,n,num[N];
11  bool cmp(int a,int b){
12     return abs(a)<abs(b);  //升序排序
13 }
14  void init(){
15     scanf("%d",&n);
16     for(int i=0;i<n;i++)
17     scanf("%d",&num[i]);
18     sort(num,num+n,cmp);     //sort函数应用
19  }
20  int solve(){
21     int ans=1,flag=0;
22     if(num[0]<0) flag=0;
23     else flag=1;
24     for(int i=0;i<n;i++){
25         if(flag==0&&num[i]>0){
26             flag=1;ans++;
27         }
28         else if(flag==1&&num[i]<0){
29             flag=0;ans++;
30         }
31     }
32     return ans;
33  }
34 int main(){
35     scanf("%d",&t);
36     while(t--){
37         init();
38         printf("%d\n",solve());
39     }
40     return 0;
41 }

 

以上是关于UVA - 11039 B - Building designing的主要内容,如果未能解决你的问题,请参考以下文章

[UVA - 11039] Building designing 题解

UVa 11039 Building designing (贪心+排序+模拟)

[UVA-11039]Children's Game

UVA1605-Building for UN(思维)

UVa1605 Building for UN (构造法)

UVa 1605 - Building for UN