演算法訓練 數字遊戲

2021-10-04 06:52:15 字數 783 閱讀 3604

資源限制

時間限制:1.0s   記憶體限制:256.0mb

問題描述

給定乙個1~n的排列a[i],每次將相鄰兩個數相加,得到新序列,再對新序列重複這樣的操作,顯然每次得到的序列都比上一次的序列長度少1,最終只剩乙個數字。

例如:3 1 2 4

4 3 6

7 916

現在如果知道n和最後得到的數字sum,請求出最初序列a[i],為1~n的乙個排列。若有多種答案,則輸出字典序最小的那乙個。資料保證有解。

輸入格式

第1行為兩個正整數n,sum

輸出格式

乙個1~n的乙個排列

樣例輸入

4 16

樣例輸出

3 1 2 4

資料規模和約定

0這是我第一次見algorithm中的全排列函式:next_permutation(a,a+n)  才疏學淺·

這個題目中n較小,用暴力法 ,用next_permutation(a,a+n)函式列出所有的1~n全排列,對於每乙個全排列,按照問題描述中給的過程來進行模擬計算,最後判斷是否等於sum

#include#include#includeusing namespace std;

int main()

m--;

} if(b[0]==sum)

cout

} }while(next_permutation(a.begin(),a.end()));

return 0;

}

試題 演算法訓練 數字遊戲

題目鏈結 問題描述 給定乙個1 n的排列a i 每次將相鄰兩個數相加,得到新序列,再對新序列重複這樣的操作,顯然每次得到的序列都比上一次的序列長度少1,最終只剩乙個數字。例如 3 1 2 4 4 3 6 7 916 現在如果知道n和最後得到的數字sum,請求出最初序列a i 為1 n的乙個排列。若有...

試題 演算法訓練 數字遊戲

問題描述 給定乙個1 n的排列a i 每次將相鄰兩個數相加,得到新序列,再對新序列重複這樣的操作,顯然每次得到的序列都比上一次的序列長度少1,最終只剩乙個數字。例如 3 1 2 4 4 3 6 7 9 16 現在如果知道n和最後得到的數字sum,請求出最初序列a i 為1 n的乙個排列。若有多種答案...

演算法訓練 傳球遊戲

演算法訓練 傳球遊戲 時間限制 1.0s 記憶體限制 256.0mb 提交此題 錦囊1 錦囊2 問題描述 上體育課的時候,小蠻的老師經常帶著同學們一起做遊戲。這次,老師帶著同學們一起做傳球遊戲。遊戲規則是這樣的 n個同學站成乙個圓圈,其中的乙個同學手裡拿著乙個球,當老師吹哨子時開始傳球,每個同學可以...