現有n個k位的數字,你的任務是重新安排數字每一位的位置,使得重新安排後這n個數字中最大的數字和最小的數字之差的絕對值最小,對於每一位的調整是相對於所有的數字的,例如有3個數字1234、4321和7890,重新安排的方案是交換第二位和第三位,則3個數字變為1324、4231和7980。
input
輸入包括多組樣例,每組樣例包括多行。每組樣例的第一行包括2個整數n和k,分別代表數字的個數和位數(1 ≤ n, k ≤
8),接下來的的n行包括n個k位的數字,允許調整後的數字有前導0(例如000123代表123)。
output
每組資料輸出乙個整數,為調整後最大數字與最小數字之間的最小差值。
sample input
3 3010909
0126 4
5237
2753
7523
5723
5327
2537
sample output
3hint2700
第二組樣例可以將原順序( 1,2,3,4) 調整為(3,1,4,2),則第二個數字變為5237,第三個數字變 為2537,分別為這樣變換後的最大值和最小值,可以驗證這樣變換後的差值2700為最小差值。
這道題是乙個需要用到全排列函式的題目,通過全排列進行列舉,然後取最優解即可。
#include #include #include using namespace std;
int main()
if(ans > max - min) ans = max - min;
}while(next_permutation(a,a+k));
cout << ans << endl;
} return 0;
}
HUST 1586 數字排列
時間限制 1秒 記憶體限制 128兆 91 次提交 36 次通過 題目描述 現有n個k位的數字,你的任務是重新安排數字每一位的位置,使得重新安排後這n個數字中最大的數字和最小的數字之差的絕對值最小,對於每一位的調整是相對於所有的數字的,例如有3個數字1234 4321和7890,重新安排的方案是交換...
騰訊 數字排列
宣告 題目來自 http blog.csdn.net v july v archive 2010 11 17 6015165.aspxhttp blog.csdn.net v july v archive 2011 01 10 6126406.aspx自己先做一遍。題目 初看此題,貌似很難,10分鐘...
排列數字問題
數字排列問題 今有7對數字 兩個1,兩個2,兩個3,兩個7,把它們排成一行。要求,兩個1間有1個其它數字,兩個2間有2個其它數字,以此類推,兩個7之間有7個其它數字。如下就是乙個符合要求的排列 17126425374635 當然,如果把它倒過來,也是符合要求的。請你找出另一種符合要求的排列法,並且這...