藍橋杯之特等獎學金

2021-10-03 15:01:10 字數 1575 閱讀 2059

問題描述

土豪大學每年都會給學生頒發鉅額的特等獎學金,當然,獲獎的前提是要足夠優秀。這所大學有n名學生,他們中的每個人都會在m門必修課的每門課上獲得乙個百分制的整數成績(0-100),到了期末教務長會獲得所有學生在所有必修課上的成績報告,他會從中挑選出最優秀的k位學生,並給他們頒發獎學金。

教務長認為,某個學生只要有一門課不及格(分數<85),他就喪失了獲得獎學金的資格。教務長會給所有科目按照重要性排序,在所有擁有獲得獎學金資格的學生中,教務長更喜歡在更重要的科目中取得高分的學生,並依此將學生排序(即對於某兩名學生,在最重要的科目中取得更高分的學生排在前面;如果兩人在最重要的科目中取得相同的分數,則比較次重要的科目;若再相同則比較第三重要的科目……一直下去)。

以前土豪大學的學生數量並不多,教務長就用紙筆計算誰將獲得獎學金;今年大學擴招了,教務長意識到用紙筆計算太複雜了,你能幫他解決這個問題嗎?說不定教務長高興了就給你也發乙份獎學金(⊙o⊙)哦!(注意:獲獎學生數量可能小於k)

輸入格式

輸入資料第一行為三個整數n、m、k,用空格隔開;第二行至第(n+1)行是學號分別為1、2……n的同學的m門課的成績(m門課已按重要性排序),用空格隔開(輸入保證每兩人的分數不完全相同)。

輸出格式

輸出一行為獲獎同學的學號,按排名從前到後排序,用空格隔開。

樣例輸入

10 2 7

99 87

96 79

93 99

88 88

90 87

90 86

90 88

88 90

91 100

100 85

樣例輸出

10 1 3 9 7 5 6

資料規模和約定

0<n≤1000,0<m≤100,0<k≤n

題解:

這個題前前後後還是花了很多時間,就是各種小錯誤,要加一的變數多加了導致莫名其妙的錯誤,排了好久才排出來,最後測試樣例終於通過了之後才發現題目中的科目數量不是固定的二,而我用stl中的sort排序還不太熟悉,以為該種方法不可行了,然後看了一些別人的題解才發現這樣也是可以的,在cmp方法中改一下,結構體中再將成績設為乙個陣列就可以實現了,最後ac了很激動,stl工具還是蠻好用的,希望以後能更加熟練,就可以減少**量,將更多時間用在別的地方上了。

#include#includeusing namespace std;

#define min(x,y) xb.sco[i];

}} int main()

}//當當前同學滿足及格條件時才放入grade中進行後續排序

if(flag!=1)//最後h即為所有及格的同學的個數

}sort(grade,grade+h,cmp);

//若及格的同學少於名額,則只有及格的同學才能獲獎

int t=min(h,k);

for(int i=0;ireturn 0;

}

藍橋杯 試題 演算法提高 特等獎學金

資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 土豪大學每年都會給學生頒發鉅額的特等獎學金,當然,獲獎的前提是要足夠優秀。這所大學有n名學生,他們中的每個人都會在m門必修課的每門課上獲得乙個百分制的整數成績 0 100 到了期末教務長會獲得所有學生在所有必修課上的成績報告,他會從...

尋找唯一特等獎C 實現

公司年會設定了 箱,已知該獎箱中特等獎一名,其餘新人獎 口碑獎 創新獎等鼓勵獎項 都有兩名 如果有該獎項 請設計演算法來快速找到那個只出現了一次的特等獎。問題描述 某公司年會設定了 箱,已知該獎箱中特等獎一名,其餘新人獎 口碑獎 創新獎等鼓勵獎項 都有兩名 如果有該獎項 請設計演算法來快速找到那個只...

藍橋杯之迷宮

請提交該整數,表示走出迷宮的玩家數目,不要填寫任何多餘的內容。思路 本來想的是類似求解迷宮問題的深搜,發現它無法遍歷每個點,還不如兩層迴圈來得快,判斷每個點,然後用深搜,每走一步標記陣列對應值改變為 1,超出邊界符合題意,移動到標記陣列值為 1 則表示兜圈子,直到所有點判斷結束。include us...