PIPIOJ 1037 排名 (結構體入門)

2021-10-02 22:14:04 字數 1375 閱讀 1893

因為這道題在stl的課裡,雖然第二遍做但是還是順著前幾道題的思維用map做了,用stl做太麻煩,暫未發現stl的簡單方法。

樣例過了但答案錯50%,不想深究了。

//答案錯誤50%

#include

using

namespace std;

const

int n =

1e3+7;

int score[13]

;//m道題的分值

string s[n]

;//存准考證號

mapint>mp;

typedef pairint> pair;

vector v;

//轉接mp用來排序

bool

cmp_by_value

(pair a, pair b)

}int

main()

mp.clear()

;(*s).

clear()

;for

(int i =

1; i <= n; i++)}

v.clear()

;int s_cnt =0;

//過線人數

mapint>

::iterator it;

for(it = mp.

begin()

; it != mp.

end(

); it++)}

printf

("%d\n"

, s_cnt)

;sort

(v.begin()

, v.

end(

), cmp_by_value)

; vector

::iterator vit;

for(vit = v.

begin()

; vit!=v.

end(

); vit++)}

return0;

}

vectorint,

int>

>vec;

vec.

push_back

(make_pair(20

,30))

;vec.

push_back

(make_pair<

int,

int>(10

,50))

;

按照stl思路做下去後,由於題意要求按照分數排序,而map只能按key排序,導致做到最後卡了一下。網上搜尋解決方法,即把map中的內容放到pair中,再放入vector,最後自定義比較方法後對vector進行排序。

答案較結構體方法複雜太多,做題時有結構體提示直接硬作就完事了。

九度1014排名(結構體)

題目1014 排名 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 8019 解決 2390 題目描述 今天的上機考試雖然有實時的ranklist,但上面的排名只是根據完成的題數排序,沒有考慮每題的分值,所以並不是最後的排名。給定錄取分數線,請你寫程式找出最後通過分數線的考生,並將他們的...

題目1014 排名(結構體排序)

每次先輸入考生人數n 0 n 1000 考題數m 0 m 10 分數線 正整數 g 接著是第1題至第m題的正整數分值 之後是每名考生的准考證號 長度不超過20的字串 題目總數m 以及這m道題的題號 題目號由1到m 直接進行處理,計算出每個學生的總分數,超過分數線就加入到結構體陣列中,最後對陣列sor...

HDU 1236 排名(結構體 排序)

今天的上機考試雖然有實時的ranklist,但上面的排名只是根據完成的題數排序,沒有考慮 每題的分值,所以並不是最後的排名。給定錄取分數線,請你寫程式找出最後通過分數線的 考生,並將他們的成績按降序列印。input測試輸入包含若干場考試的資訊。每場考試資訊的第1行給出考生人數n 0 n 1000 考...