原題鏈結
不知道這是第幾次做這類題了
對於兩個數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...