設有n個正整數(n ≤ 20),將它們聯接成一排,組成乙個最大的多位整數。
例如:n=3時,3個整數13,312,343聯接成的最大整數為:34331213
又如:n=4時,4個整數7,13,4,246聯接成的最大整數為:7424613
輸入描述:
第一行,乙個正整數n。
第二行,n個正整數。
輸出描述:
乙個正整數,表示最大的整數
示例1輸入
313 312 343
輸出34331213
首先想到按字典序降序排序,但由於字串比較的本身的缺陷並不能完全解決題目問題,列如321和32,如果按照字典序排序那麼拼接成的就是32132,然而結果卻沒有32321優秀。所以應當自定義排序函式,當a+b>b+a時a排在前面,否則b排在前面。
#include
#include
using
namespace std;
intcmp
(string a,string b)
intmain
(int argc,
char
*ar**)
貪心 字串 拼數
原題鏈結 不知道這是第幾次做這類題了 對於兩個數a和b,我們考慮微調 若a放在前面,則數字為 a b 這裡的 號表示將b連在a後面 若b放在前面,則數字為 b a 則只需比較a b與b a的大小關係即可 即可以判斷哪個數一定放在前面問題來了,怎樣實現呢,兩兩對比?我們發現string 剛好滿足我們需...
拼點遊戲 貪心
總時間限制 1000ms 記憶體限制 65536kb 描述c和s兩位同學一起玩拼點遊戲。有一堆白色卡牌和一堆藍色卡牌,每張卡牌上寫了乙個整數點數。c隨機抽取n張白色卡牌,s隨機抽取n張藍色卡牌,他們進行n回合拼點,每次兩人各出一張卡牌,點數大者獲得三顆巧克力,小者獲得一顆巧克力,如果點數相同,每人各...
NC16783 拼數(簡單排序)
題目描述 設有n個正整數 n 20 將它們聯接成一排,組成乙個最大的多位整數。例如 n 3時,3個整數13,312,343聯接成的最大整數為 34331213 又如 n 4時,4個整數7,13,4,246聯接成的最大整數為 7424613 輸入描述 第一行,乙個正整數n。第二行,n個正整數。輸出描述...