貪心 字串 拼數

2021-09-25 11:42:53 字數 587 閱讀 4991

原題鏈結

不知道這是第幾次做這類題了

對於兩個數a和b,

我們考慮微調

- 若a放在前面,則數字為(a+b)(這裡的+號表示將b連在a後面)

- 若b放在前面,則數字為(b+a)

- 則只需比較a+b與b+a的大小關係即可

- 即可以判斷哪個數一定放在前面

問題來了,怎樣實現呢,兩兩對比?

我們發現string 剛好滿足我們需要進行的操作,這時我們可以用string

再造乙個cmp

bool cmp(string x,string y)
ac**

#includeusing namespace std;

const int n=25;

int n;

string s[n];

bool cmp(string x,string y)

int main()

sort(s+1,s+n+1,cmp);

for(int i=1;i<=n;i++)

}

拼數(貪心 排序)

設有n個正整數 n 20 將它們聯接成一排,組成乙個最大的多位整數。例如 n 3時,3個整數13,312,343聯接成的最大整數為 34331213 又如 n 4時,4個整數7,13,4,246聯接成的最大整數為 7424613 輸入描述 第一行,乙個正整數n。第二行,n個正整數。輸出描述 乙個正整...

字串(簡單貪心)

時間限制 1000 ms 記憶體限制 65535 kb 難度 1 描述shiva得到了兩個只有加號和減號的字串,字串長度相同。shiva一次可以把乙個加號和它相鄰的減號交換。他想知道最少需要多少次操作才能把第乙個字串變換成第二個字串。你現在要去幫助他完成那個這個問題。輸入多組測試資料 每組資料有兩行...

字串處理洛谷P1012拼數

剛開始並沒有想到字串排序,想用整數一位一位比較,想了半天感覺太難了,然後想到了字串排序,寫完高興怎麼這麼簡單,結果一提交wa了乙個點,一看原來32,321的組合最大是32321,而字串排序的話321 32這就有問題了,於是修改了排序 include include include include i...