【YbtOJ高效進階 遞推-2】奇怪漢諾塔
連結
題目描述
漢諾塔問題,條件如下:
這裡有 A、B、C 和 D 四座塔。
這裡有 n個圓盤, n的數量是恆定的。
每個圓盤的尺寸都不相同。
所有的圓盤在開始時都堆疊在塔 A 上,且圓盤尺寸從塔頂到塔底逐漸增大。
我們需要將所有的圓盤都從塔 A 轉移到塔 D 上。
每次可以移動一個圓盤,當塔為空塔或者塔頂圓盤尺寸大於被移動圓盤時,可將圓盤移至這座塔上。 請你求出將所有圓盤從塔 A 移動到塔 D,所需的最小移動次數是多少。
輸出
對於每一個整數n( 1 ≤ n ≤ 12 1\leq n \leq12 1≤n≤12) ,輸出一個滿足條件的最小移動次數,每個結果佔一行。
思路
我們先考慮三座塔的情況
肯定是先把
n
−
1
n-1
n−1個盤子放到B塔,然後把最後這個放到C塔,然後再把B塔的這
n
−
1
n-1
n−1個盤子放到C塔
所以很容易得到
a
i
=
2
∗
a
i
−
1
+
1
a_i = 2*a_{i-1} + 1
ai=2∗ai−1+1
那再來看回原題
四個塔,那我們是否可以視為是獨立一座塔和三座塔的處理呢?
我們列舉一個
j
j
j,表示
j
j
j個盤子放去B塔,然後剩下的再去放,最後再把這
j
j
j個盤子放到D塔
那很顯然,我們用
f
i
f_i
fi表示i個盤子的最少步數
則
f
i
=
m
i
n
1
≤
j
≤
i
(
2
∗
f
j
+
a
i
−
j
)
f_i = \underset{1\leq j \leq i}{min}(2*f_j + a_{i-j})
fi=1≤j≤imin(2∗fj+ai−j)
程式碼
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
int a[15], f[15];
int main() {
a[1] = 1;
for (int i = 2; i <= 12; ++i) a[i] = 2 * a[i - 1] + 1;
memset(f, 0x3f, sizeof(f));
f[1] = 1;
for (int i = 1; i <= 12; ++i) {
for (int j = 0; j <= i; ++j) f[i] = min(2 * f[j] + a[i - j], f[i]);
printf("%d\n", f[i]);
}
}
相關文章
- 奇怪的漢諾塔 - 題解
- 遞迴-*漢諾塔遞迴
- 漢諾塔和遞迴遞迴
- 課時24:遞迴:漢諾塔遞迴
- 遞迴求解漢諾塔問題遞迴
- ybtoj 高效進階題解索引索引
- ybtoj高效進階題解索引索引
- 漢諾塔-PythonPython
- SQL 漢諾塔SQL
- 漢諾塔的圖解遞迴演算法圖解遞迴演算法
- python3:遞迴解漢諾塔問題Python遞迴
- 漢諾塔詳解
- 從漢諾塔遊戲理解python遞迴函式遊戲Python遞迴函式
- 【ybtoj 高效進階 1.4】【深搜】數獨遊戲遊戲
- Python實現:漢諾塔問題Python
- 小知識系列(3):Hanoi塔(漢諾塔,河內塔)
- PHP實現漢諾塔演算法PHP演算法
- 漢諾塔遊戲《演算法很美》遊戲演算法
- 第二章 :查詢與排序-------遞迴經典問題——漢諾塔問題排序遞迴
- 漢諾塔與二進位制、滿二叉樹的千絲萬縷二叉樹
- JAVA漢諾塔遞迴 之SpringCloud企業分散式微服務雲架構快速開發平臺Java遞迴SpringGCCloud分散式微服務架構
- YbtOJ 遞推演算法課堂過關 例5 平鋪方案【遞推(簡單DP)】演算法
- 《ybtoj高效進階》第一部分第五章例題5 機器維修
- Rust 程式設計影片教程(進階)——017_2 訊息傳遞 2Rust程式設計
- Rust 程式設計視訊教程(進階)——017_2 訊息傳遞 2Rust程式設計
- Python進階-演算法-遞迴Python演算法遞迴
- Python 函式進階-遞迴函式Python函式遞迴
- 推進快遞包裝“綠色革命”
- React進階篇2React
- 漢羅塔問題 java實現Java
- Laravel 入門到進階-推薦Laravel
- 推斷二叉樹(進階)二叉樹
- 手把手教你用java實現資料結構(五)-----查詢(二分法),遞迴(斐波那契數列,漢諾塔)演算法Java資料結構遞迴演算法
- [演算法練習及思路-程式設計師面試金典(Java解法)]No46.漢諾塔問題演算法程式設計師面試Java
- 漢家松鼠CG:《漢家江湖2》的開發進度披露和思考
- Prompt進階2:LangGPT(構建高效能Prompt策略和技巧)--最佳實踐指南GPT
- 恆諾:武漢市消費者信心調查
- Dagger2進階篇(二)