1085 PAT單位排行 資料處理

2021-10-08 13:14:52 字數 1259 閱讀 6959

複雜資料處理題目

此題的資料不難處理

乙級最後乙個題很多這種

給很多資料,讓處理

首先還是要看資料結構

有對映關係,學校 - 人數和權值

最好是利用兩個map進行解決,乙個對映人數,乙個對映權值

如果都將他們放到乙個map的結構體裡,會有點過不去,資料處理問題往往實現的較為困難,但是慢慢做也是可以出來

但有一些點就會被忽略掉,還有慢慢改bug,最好是首先就選擇乙個好是資料結構

糟糕的實現,往往顧不上細節的**,只為了大致的正確

以下為柳神題解

兩個map,⼀個cnt⽤來儲存某學校名稱對應的參賽⼈數,另⼀個sum計算某學校名稱對應的總

加權成績。每次學校名稱string school都要轉化為全⼩寫,將map中所有學校都儲存在vector ans中,

型別為node,node中包括學校姓名、加權總分、參賽⼈數。對ans陣列排序,根據題⽬要求寫好cmp

函式,最後按要求輸出。對於排名的處理:設⽴pres表示前⼀個學校的加權總分,如果pres和當前學

校的加權總分不同,說明rank等於陣列下標+1,否則rank不變~

注意:總加權分數取整數部分是要對最後的總和取整數部分,不能每次都直接⽤int儲存,不然會有⼀

個3分測試點不通過~

#include

#include

#include

#include

using

namespace std;

struct node

;doublef(

int x,

char c)

bool

cmp(node &e1, node &e2)

return e1.x > e2.x;

}int

main()

for(

auto

&e : rap));

}sort

(v.begin()

, v.

end(

), cmp)

;int t =1;

int level =-1

; cout << rap.

size()

<< endl;

for(

int i =

0; i < v.

size()

; i++

)return0;

}

1085 PAT單位排行

每次 pat 考試結束後,考試中心都會發布乙個考生單位排行榜。本題就請你實現這個功能。輸入第一行給出乙個正整數 n 10 5 即考生人數。隨後 n 行,每行按下列格式給出乙個考生的資訊 准考證號 得分 學校其中准考證號是由 6 個字元組成的字串,其首字母表示考試的級別 b代表乙級,a代表甲級,t代表...

1085 PAT單位排行

題目鏈結 思路借鑑 分析 兩個map,乙個cnt用來儲存某學校名稱對應的參賽人數,另乙個sum計算某學校名稱對應的總加權成績。每次學校名稱string school都要轉化為全小寫,將map中所有學校都儲存在vector ans中,型別為node,node中包括學校姓名 加權總分 參賽人數。對ans...

1085 PAT單位排行

每次 pat 考試結束後,考試中心都會發布乙個考生單位排行榜。本題就請你實現這個功能。輸入格式 輸入第一行給出乙個正整數 n 10 5 即考生人數。隨後 n 行,每行按下列格式給出乙個考生的資訊 准考證號 得分 學校 其中准考證號是由 6 個字元組成的字串,其首字母表示考試的級別 b代表乙級,a代表...