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 outputcase 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行... 題目鏈結 題意 給出一顆生成樹,1 n 10000,在某乙個節點有k個機械人 k 10 然後機械人從這裡開始走,要求遍歷完節點,隨便停到什麼地方.求最少的路程總和.題解 樹形dp,關鍵是dp u i i的定義,因為機械人可能從子樹再跑回來,然後為了避免重複討論,應該定義為 在u為根的子樹上停了幾個機... 寒假的訓練以不太順利的結果結束。整個寒假訓練都是兩天一場學長抓的訓練賽,然後補題,由於自己比較菜以及一些莫名的因素,導致訓練賽打得比較差,尤其是後幾場。訓練賽沒能打好的原因可能與狀態關係確實很大,但其中肯定與實力有關吧。總結一下,這些題目,演算法和思維上難倒自己的好像也沒幾道 後來補出來的 但是賽場...寒假集訓三,括號匹配問題
寒假集訓 Find Metal Mineral
寒假集訓總結