1085 PAT單位排行 25分 和cmp排序

2021-10-23 04:16:30 字數 953 閱讀 2179

自己寫的最後乙個測試點超時了,22分盡力了。看了柳婼的**,auto賦值真的學不來。。。但不用auto迴圈賦值就要超時,md就差一點。

cmp排序要注意幾點:

cmp排序的本質:cmp的問題經常混淆,只需要記住:希望元素按什麼順序排列,就直接按照大小次序返回即可;

cmp排序的的順序:嚴苛的條件先寫,不然就沒用了。如此題中:

bool cmp(struct pat a,struct pat b)

三個return就不能交換順序。

先上自己的:

#include

#include

#include

#include

#include

#include

using namespace std;

struct pat

a;bool cmp(struct pat a,struct pat b)

int sum=0;

vectora;

for(int i=0;i整體思路沒有問題,就迴圈賦值會超時

柳婼的:

#include

#include

#include

#include

#include

#include

#include

#include

using namespace std;

struct pat

;bool cmp( pat a, pat b)

vectora;

for(auto it=schper.begin();it!=schper.end();it++)

a.push_back(pat);

sort(a.begin(),a.end(),cmp);

int pai=1;

int k=0;

cout

1085 PAT單位排行(25 分)

我是卡在了最後乙個測試點。也就是 測試點 5 不是執行超時的問題,反而是答案錯誤。花了我好長時間終於發現了問題 是這樣。因為最後答案要求 加權總分定義為乙級總分 1.5 甲級總分 頂級總分 1.5的整數部分 我也注意到最後輸出是整數部分。但是我忘記了比較的時候!我用double與double 比較 ...

1085 PAT單位排行 (25 分

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

1085 PAT單位排行 25 分

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