• UVA11039 Building designing【排序】


    问题链接UVA11039 Building designing基础级练习题,用C++语言编写程序。

    问题简述:输入n个绝对值各不相等的非0整数,选择尽量多的数,排成一个序列,使得正负交替并且绝对值递增。输出其最大长度。

    问题分析:按照绝对值排序后,看一遍就可以了。

    程序说明:(略)


    AC的C++语言程序如下:

    /* UVA11039 Building designing */
    
    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    
    using namespace std;
    
    const int MAXN = 500000;
    
    int val[MAXN];
    
    int cmp(int& a, int& b)
    {
        return abs(a) < abs(b);
    }
    
    int main()
    {
        int p, n, ans, i;
    
        scanf("%d", &p);
        while(p--) {
            scanf("%d", &n);
            for(i=0; i<n; i++)
                scanf("%d", &val[i]);
    
            sort(val, val+n, cmp);
    
            ans = 1;
            for(i=1; i<n; i++) {
                if((val[i-1] > 0 && val[i] < 0) || (val[i-1] < 0 && val[i] > 0))
                    ans++;
            }
    
            printf("%d
    ", ans);
        }
    
        return 0;
    }


  • 相关阅读:
    spring(1)
    mybatis(7)自定义结果集(一对多/多对一)
    延迟加载
    《构建之法》阅读笔记03
    http socket
    转换
    .net后台通过xmlhttp 和远程服务通讯
    XMLHttpRequest介绍
    js 贪吃蛇
    触发器
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564446.html
Copyright © 2020-2023  润新知