zoukankan      html  css  js  c++  java
  • hdu 5182 PM2.5

    问题描述
    目前,我们用PM2.5的含量来描述空气质量的好坏。一个城市的PM2.5含量越低,它的空气质量就越好。所以我们经常按照PM2.5的含量从小到大对城市排序。一些时候某个城市的排名可能上升,但是他的PM2.5的含量也上升了。这就意味着他的空气质量并没有改善。所以这样的排序方式是不合理的。为了使得排序合理,我们提出了一个新的排序方法。我们按照两个PM2.5含量测量的差值(第一次-第二次)来对他们按降序排序,如果有重复,按照第二次的测量值升序排序,如果还有重复,按照输入的顺序排序。
    输入描述
    多组测试数据(大概100100组),每一组测试数据第一行先给出一个整数nn,代表有nn个城市需要被排序。城市被从00到n-1n1标号。接下来nn行,每一含有两个整数代表每一个城市第一次和第二次被测量的PM2.5值。第ii行描述城市i-1i1的信息。
    请处理到文件末尾。
    [参数说明]
    所有整数都在[1,100][1,100]的范围内。
    输出描述
    对于每一个数据,输出排好序之后的城市ID。
    输入样例
    2
    100 1
    1 2
    3
    100 50
    3 4
    1 2
    输出样例
    0 1
    0 2 1

    建立结构体,按建立排序方式
    #include <iostream>
    #include <algorithm>
    #include <cstdio>
    using namespace std;
    struct node
    {
        int value,test,id;
        bool operator < (const node &another) const
        {
            if(value!=another.value) return value>another.value;
            if(test!=another.test)   return test<another.test;
            return id<another.id;
        }
    }a[111];
    int main()
    {
        int n,u,v;
        while(~scanf("%d",&n))
        {
            for(int i=0;i<n;i++)
            {
                scanf("%d%d",&u,&v);
                a[i].value=u-v;
                a[i].test=v;
                a[i].id=i;
            }
            sort(a,a+n);
            for(int i=0;i<n;i++)
            {
                if(i) printf(" ");
                printf("%d",a[i].id);
            }
            puts("");
        }
        return 0;
    }
  • 相关阅读:
    CSS Sprite笔记
    前端分页页码静态部分制作
    有趣的网页小部件笔记
    Lintcode 85. 在二叉查找树中插入节点
    Lintcode 166. 主元素
    网页失去焦点标题变化效果
    Lintcode 166. 链表倒数第n个节点
    Lintcode 157. 判断字符串是否没有重复字符
    Lintcode 175. 翻转二叉树
    Lintcode 372. O(1)时间复杂度删除链表节点
  • 原文地址:https://www.cnblogs.com/zsyacm666666/p/5388941.html
Copyright © 2011-2022 走看看