寒假集訓三,EXCEL排序

2021-08-14 23:53:12 字數 1562 閱讀 2804

excel可以對一組紀錄按任意指定列排序。現請你編寫程式實現類似功能。

input測試輸入包含若干測試用例。每個測試用例的第1行包含兩個整數 n (<=100000) 和 c,其中 n 是紀錄的條數,c 是指定排序的列號。以下有 n 行,每行包含一條學生紀錄。每條學生紀錄由學號(6位數字,同組測試中沒有重複的學號)、姓名(不超過8位且不包含空格的字串)、成績(閉區間[0, 100]內的整數)組成,每個專案間用1個空格隔開。當讀到 n=0 時,全部輸入結束,相應的結果不要輸出。 output對每個測試用例,首先輸出1行「case i:」,其中 i 是測試用例的編號(從1開始)。隨後在 n 行中輸出按要求排序後的結果,即:當 c=1 時,按學號遞增排序;當 c=2時,按姓名的非遞減字典序排序;當 c=3 時,按成績的非遞減排序。當若干學生具有相同姓名或者相同成績時,則按他們的學號遞增排序。 sample input

3 1

000007 james 85

000010 amy 90

000001 zoe 60

4 2000007 james 85

000010 amy 90

000001 zoe 60

000002 james 98

4 3000007 james 85

000010 amy 90

000001 zoe 60

000002 james 90

0 0

sample output
case 1:

000001 zoe 60

000007 james 85

000010 amy 90

case 2:

000010 amy 90

000002 james 98

000007 james 85

000001 zoe 60

case 3:

000001 zoe 60

000007 james 85

000002 james 90

000010 amy 90

**如下:
#include#include#include#include#include#includeusing namespace std;

struct stu

a[100005];

bool cmp1(stu a,stu b)

bool cmp2(stu a,stu b)

bool

c***(stu a,stu b)

temp;

bool cmp1(student a,student b) //按學號

if(m==1)

sort(vec.begin(),vec.end(),cmp1);

else if(m==2)

sort(vec.begin(),vec.end(),cmp2);

else if(m==3)

sort(vec.begin(),vec.end(),c***);

cout<<"case "

寒假集訓三,括號匹配問題

給定一串由 和組成的字串。如果我們規定以下的字串是合法的字串 1 空串是合法的字串 2 如果a b都是合法的,那麼ab也是合法的字串。3 如果a是合法的,那麼 a 和 a 都是合法的字串。也就是說,所有左右括號必須配對,且不能 切開括號 如 或 輸入輸入先是乙個正整數n,代表有n個字串。接下來是n行...

寒假集訓 Find Metal Mineral

題目鏈結 題意 給出一顆生成樹,1 n 10000,在某乙個節點有k個機械人 k 10 然後機械人從這裡開始走,要求遍歷完節點,隨便停到什麼地方.求最少的路程總和.題解 樹形dp,關鍵是dp u i i的定義,因為機械人可能從子樹再跑回來,然後為了避免重複討論,應該定義為 在u為根的子樹上停了幾個機...

寒假集訓總結

寒假的訓練以不太順利的結果結束。整個寒假訓練都是兩天一場學長抓的訓練賽,然後補題,由於自己比較菜以及一些莫名的因素,導致訓練賽打得比較差,尤其是後幾場。訓練賽沒能打好的原因可能與狀態關係確實很大,但其中肯定與實力有關吧。總結一下,這些題目,演算法和思維上難倒自己的好像也沒幾道 後來補出來的 但是賽場...