演算法提高 班級排名

2021-10-02 05:21:51 字數 1179 閱讀 5640

達達在陶陶的影響下,也對學習慢慢的產生了興趣。他在每次考試之後,都會追著老師問,自己在班級的總名次是多少。考試一多,老師也不耐煩了,於是他給了達達所有人的成績,讓他自己去算出自己的排名。可人太多了,達達也無法立即算出來,於是他想讓你幫幫他。

第一行為乙個整數n,代表班級的學生總數。

接下來n行,每行乙個字串,代表乙個學生的姓名,第一行總是dada。

接下來一行乙個整數m,代表一共有m次考試。

每次考試有n行,每行有以乙個空格分隔的乙個正整數s和乙個字串p,代表名字為p的學生在這次考試中得了s分。

一共m行,每行乙個整數,代表達達在班級裡的排名,排名是這一次考試過後的所有考試總分排名,如果達達和別人並列,達達總是排在前面。

在這裡給出一組輸入。例如:

3

dadaab

249 dada

49 a

48 b

80 a

85 b

83 dada

在這裡給出相應的輸出。例如:

1

2

資料規模和約定 n <= 100,名字長度不超過30,分數不超過100

對於這種題,用結構體來寫會方便很多,這道題花了不少時間,開始審題不夠仔細,每次的排名是前面所有考試的總分,不是每次的分數。還有分數並列時要保證dada在前面,這裡有個小技巧,可以在結構體裡新增乙個編號id,因為dada是最先輸入的,可以保證dada的編號是最小的,分數相等時讓編號再從小到大排列即可。(sort可以根據自定義的函式排序,實現起來比較容易)

#include

#include

#include

#include

using

namespace std;

struct student

;int

cmp(student a, student b)

intmain()

string t;

int sorce,cnt=

0,s=1;

cin >> m;

for(

int i =

0; i < m*n; i++)}

if(cnt == n)

//輸入n次,代表一次考試}}

}return0;

}

演算法提高 班級排名

達達在陶陶的影響下,也對學習慢慢的產生了興趣。他在每次考試之後,都會追著老師問,自己在班級的總名次是多少。考試一多,老師也不耐煩了,於是他給了達達所有人的成績,讓他自己去算出自己的排名。可人太多了,達達也無法立即算出來,於是他想讓你幫幫他。輸入格式 第一行為乙個整數n,代表班級的學生總數。接下來n行...

藍橋杯 演算法提高 班級排名 Python

時間限制 1.0s 記憶體限制 256.0mb 問題描述 達達在陶陶的影響下,也對學習慢慢的產生了興趣。他在每次考試之後,都會追著老師問,自己在班級的總名次是多少。考試一多,老師也不耐煩了,於是他給了達達所有人的成績,讓他自己去算出自己的排名。可人太多了,達達也無法立即算出來,於是他想讓你幫幫他。輸...

藍橋杯 演算法提高VIP 班級排名

題目描述 達達在陶陶的影響下,也對學習慢慢的產生了興趣。他在每次考試之後,都會追著老師問,自己在班級的總名次是多少。考試一多,老師也不耐煩了,於是他給了達達所有人的成績,讓他自己去算出自己的排名。可人太多了,達達也無法立即算出來,於是他想讓你幫幫他。資料規模和約定 n 100,名字長度不超過30,分...