//字串string的比較與拼接
problem d. 早華寅的財富密碼
input file: standard input
output file: standard output
time limit: 1 second
memory limit: 128 megabytes
早隊在睡覺做夢的時候夢到自己發現了乙個藏寶圖,並根據藏寶圖成功找到了寶藏的位置,現在他在寶藏的入口處,入口的地上散布著一些碎片,好像是寶藏的鑰匙,碎片上寫著乙個個數字,需要你拼成乙個最大的整數才能形成正確的鑰匙開啟寶藏入口的門,你能幫助早華寅拼好鑰匙嗎?
input
第一行給定乙個整數 n 代表下面有 n 個碎片
第二行給定 n 個正整數
保證輸入的所有資料均不大於 1000
output
輸出乙個整數作為答案
example
standard input standard output
intput
23 30
81 3 30 305 346 5 58 8
85853463305301
output
33085853463305301
這道題一旦陷入常規思路會發現越想越複雜。關鍵是要把其轉換為陣列排序的問題。給定任意兩個整數,設計乙個比較規則,讓其組成的整數最大。其實也是很簡單,比如a和b兩個整數,把他們兩個分別前後拼接成兩個整數,再比較一下大小之後就知道誰大誰小。舉個例子就是3和30這兩個整數;用字串拼接起來分別是 303和 330;然後轉換為整數再比較一次,發現330比303大,也就是 拼在30前面比較大,那麼就是說3比30要大。
#include
#include
#include
#include
#include
using namespace std;
string s[
1000009];
int cmp
(string a,string b)
int main()
sort
(s,s+n,cmp)
;for
(int i=
0;i)}
//或者這樣寫
#include
#include
#include
#include
#include
using namespace std;
string s[
1000009];
int cmp
(string a,string b)
int main()
sort
(s,s+n,cmp)
; string result;
//再定義乙個
for(int i=
0;i) cout<}// a code block
var foo =
'bar'
;
//我之前的**,不曉得**出錯了!!!
#include
#include
#include
#include
using namespace std;
struct bookp[
1000009];
int cmp
(book a,book b)
if(a.n1==b.n1)
return a.n1 > b.n1 ;
}int main()
else
if(p[i]
.n>=
10&& p[i]
.n<
100)
else
}sort
(p,p+t,cmp)
;for
(int i=
0;i) cout<}
2020編碼大賽(5)半決賽
2020編碼大賽題目 半決賽,是32個隊伍選出8個隊伍。一,需求變更 我的解讀 1,檔案大小是1024的倍數 2,可以混合裝載 3,排程階段可以訪問檔案 二,壓縮演算法 在寫了乙個很簡單的lzw演算法之後,經過多日的攻堅,終於把ppmd寫出來了。壓縮率 2 7,也就是說一般情況下可以裝載7份 這裡列...
華為程式設計大賽決賽題
題目 俄羅斯方塊覆蓋。給定 乙個21 21的格仔矩陣,從1到441編號。輸入是乙個檔案testin.txt,裡面有4個數字,每乙個數字代表陣列下標,陣列元素值為1,表示障礙。空著的格仔用0表示。這四個數字代表的圖形只能是這個中的一種!也就是說。矩陣中4個1勾勒出個圖形只能是這兩種樣子。要求是用俄羅斯...
2020 ICPC 小公尺邀請賽 決賽
遊記什麼的沒空寫了,雖然有許多很有趣的事情想寫 但是出去旅遊拉下了一大堆作業。以前高中寫遊記可以心安理得占用訓練時間 但現在不是了。至少現在ddl要到了 現場只有3t,bgk,最後e給我打傻了。更正一下看過的題 可以發現,我們不可能出現被打2a的情況 如果出現了,那麼改為每天回答問題一定更優 那麼就...