51nod 1874 字串排序

2021-08-13 22:37:27 字數 1281 閱讀 3353

1874 字串排序

基準時間限制:1 秒 空間限制:131072 kb 分值: 5 

難度:1級演算法題

定義乙個字串的無序度為所有位置後面的字母比該位置的字母小的總數之和。比如"daabec''這個字串的無序度是5,因為d後面有4個位置比它小(aabc),e後面有1個比它小(c),其它位置後面沒有比自己小的。" aacedgg "的無序度為1(e後面有乙個d比它小)。" zwqm "的無序度為6,每個位置後面所有的字母都比它小。

現在你的任務是給定一些字串(只由大寫字母組成),把他們按照無序度從小到大排序,如果無序度一樣,那麼就按照輸入的相對順序排序。

input

單組測試資料。

第一行有兩個整數n(0 

接下來m行,每一行包含乙個長度為n的字串,只由大寫字母組成。

output

輸出m行,表示排序之後的字串。
input示例

10 6

aacatgaagg

ttttggccaa

tttggccaaa

gatcagattt

cccgggggga

atcgatgcat

output示例

cccgggggga

aacatgaagg

gatcagattt

atcgatgcat

ttttggccaa

tttggccaaa

思路:使用vector+pair的搭配,排序函式很久沒寫了,有些生疏,檢視了以前寫的部落格!

#include #include #include //stringstream

#include //cout輸出小數格式

#include //pair

#include //bitset

#include #include #include #include #include #include #include #include #include //limit

#include #include #include#includeusing namespace std;

string str[105];

bool judge(const paira,const pairb)

}return cnt;

}int main()

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

for(int i=0;i

51nod 1874 字串排序

定義乙個字串的無序度為所有位置後面的字母比該位置的字母小的總數之和。比如 daabec 這個字串的無序度是5,因為d後面有4個位置比它小 aabc e後面有1個比它小 c 其它位置後面沒有比自己小的。aacedgg 的無序度為1 e後面有乙個d比它小 zwqm 的無序度為6,每個位置後面所有的字母都...

1874 字串排序解法心得

現在你的任務是給定一些字串 只由大寫字母組成 把他們按照無序度從小到大排序,如果無序度一樣,那麼就按照輸入的相對順序排序。收起單組測試資料。第一行有兩個整數n 0 n 50 和m 0 m 100 分別表示輸入的字串的長度和字串的個數。接下來m行,每一行包含乙個長度為n的字串,只由大寫字母組成。輸出m...

51nod 1196 字串的數量

超級神題!有n種字元,若此種字元的編號 1 n i 2 n 則他後面可接任意字元。若不是,則他後面接的字元編號至少要是他的兩倍。問長度為m的字串的個數。這道題我只想出了 o n 2 的做法,於是叕只能求助題解。題解的做法和週六第二題有點像,但我並沒有分析出最長鏈的長度小於 log n 這個性質。知道...