複雜資料處理題目
此題的資料不難處理
乙級最後乙個題很多這種
給很多資料,讓處理
首先還是要看資料結構
有對映關係,學校 - 人數和權值
最好是利用兩個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代表...