因為這道題在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 考...