hdu 5182 PM2.5
生活随笔
收集整理的這篇文章主要介紹了
hdu 5182 PM2.5
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題描述 目前,我們用PM2.5的含量來描述空氣質量的好壞。一個城市的PM2.5含量越低,它的空氣質量就越好。所以我們經常按照PM2.5的含量從小到大對城市排序。一些時候某個城市的排名可能上升,但是他的PM2.5的含量也上升了。這就意味著他的空氣質量并沒有改善。所以這樣的排序方式是不合理的。為了使得排序合理,我們提出了一個新的排序方法。我們按照兩個PM2.5含量測量的差值(第一次-第二次)來對他們按降序排序,如果有重復,按照第二次的測量值升序排序,如果還有重復,按照輸入的順序排序。 輸入描述 多組測試數據(大概100100組),每一組測試數據第一行先給出一個整數nn,代表有nn個城市需要被排序。城市被從00到n-1n?1標號。接下來nn行,每一含有兩個整數代表每一個城市第一次和第二次被測量的PM2.5值。第ii行描述城市i-1i?1的信息。 請處理到文件末尾。 [參數說明] 所有整數都在[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; }
建立結構體,按建立排序方式 #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; }
?
轉載于:https://www.cnblogs.com/zsyacm666666/p/5388941.html
總結
以上是生活随笔為你收集整理的hdu 5182 PM2.5的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 多线程的代价
- 下一篇: [CareerCup] 16.2 Mea