NEUQ NewOJ 1277 考試排名

2021-08-17 23:28:33 字數 2360 閱讀 8924

題目描述:

c++程式設計考試使用的實時提交系統,具有即時獲得成績排名的特點。它的功能是怎麼實現的呢? 

我們做好了題目的解答,提交之後,要麼「ac」,要麼錯誤,不管怎樣錯法,總是給你記上一筆,表明你曾經有過一次錯誤提交,因而當你一旦提交該題 「ac」後,就要與你算一算帳了,總共該題錯誤提交了幾回。雖然你在題數上,大步地躍上了乙個台階,但是在耗時上要攤上你共花去的時間。特別是,曾經有過 的錯誤提交,每次都要攤上一定的單位時間分。這樣一來,你在做出的題數上,可能領先別人很多,但是,在做出同樣題數的人群中,你可能會在耗時上處於排名的 劣勢。 

例如:某次考試一共8題(a,b,c,d,e,f,g,h),每個人做的題都在對應的題號下有個數量標記,負數表示該學生在該題上有過的錯誤提交 次數,但到現在還沒有ac,正數表示ac所耗的時間,如果正數a跟上一對括號,裡面有個整數b,那就表示該學生提交該題ac了,耗去了時間a,同時,曾經 錯誤提交了b次,因此對於下述輸入資料: 

name a b c d e f g h 

smith -1 -16 8 0 0 120 39 0 

john 116 -2 11 0 0 82 55(1) 0 

jose 72(3) 126 10 -3 0 47 21(2) -2 

bush 0 -1 -8 0 0 0 0 0 

alice -2 67(2) 13 -1 0 133 79(1) -1 

bob 0 0 57(5) 0 0 168 -7 0 

若每次錯誤提交的罰分為20分,則其排名從高到低應該是這樣的: 

jose 5 376 

john 4 284 

alice 4 352 

smith 3 167 

bob 2 325 

bush 0 0

輸入:輸入資料的第一行是考試題數n(1≤n≤12)以及單位罰分數 m(10≤m≤20),每行資料描述乙個學生的使用者名稱(不多於10個字元的字串)以及對所有n道題的答題現狀,其描述採用問題描述中的數量標記的格式,見 上面的**,提交次數總是小於100,ac所耗時間總是小於1000。

輸出:將這些學生的考試現狀,輸出乙個實時排名。實時排名顯然先按ac題數的多 少排,多的在前,再按時間分的多少排,少的在前,如果湊巧前兩者都相等,則按名字的字典序排,小的在前。每個學生佔一行,輸出名字(10個字元寬),做出 的題數(2個字元寬,右對齊)和時間分(4個字元寬,右對齊)。名字、題數和時間分相互之間有乙個空格。

樣例輸入

8 20

smith -1 -16 8 0 0 120 39 0

john 116 -2 11 0 0 82 55(1) 0

josephus 72(3) 126 10 -3 0 47 21(2) -2

bush 0 -1 -8 0 0 0 0 0

alice -2 67(2) 13 -1 0 133 79(1) -1

bob 0 0 57(5) 0 0 168 -7 0

樣例輸出

josephus    5  376

john 4 284

alice 4 352

smith 3 167

bob 2 325

bush 0

一道看似不簡單的水題。

思路:讀入一行,然後用stringstream進行分解,判斷分解後的專案裡是否有括號裡然後繼續累加,然後放入自定義規則後的set。

//newoj 1277

#includeusing namespace std;

int cnt,litter;//cnt為需要計算的題數,litter為懲罰時間

struct pupil

tmp;

int total_ac=0,total_time=0;

struct rule

}total_time+=(cnt_n*litter+num);

}return;

}void input()

tmp.time=total_time;

tmp.ac_t=total_ac;

s.insert(tmp);

}return;

}void output()

NEUQ newoj 1634 數列(藍橋杯題)

題目描述 給定乙個正整數k 3 k 15 把所有k的方冪及所有有限個互不相等的k的方冪之和構成乙個遞增的序列。例如,當k 3時,這個序列是 1,3,4,9,10,12,13,該序列實際上就是 30,31,30 31,32,30 32,31 32,30 31 32,請你求出這個序列的第n項的值 用10...

12 7 比賽題解

這個題的意思就是對於給定的數x,找到兩個數a,b滿足以下條件 可以看出a,b是不唯一的,所以這道題是spj,那我們只要找到最好找的就好了。a b 最大的時候,就是a b x對吧,正好這時候也滿足題目中的其它要求。如果x x 都不滿足大於 x 這個條件的話,肯定就無解了,所以我們只需要判斷這個條件就好...

127 單詞接龍

思路和126差不多,區別在於只用bfs,每次訪問一層,用乙個map來儲存訪問過的結點以及與起點的距離,避免重複訪問。最後輸出map中的終點項即可 import queue class solution def ladderlength self,beginword,endword,wordlist ...