漢諾4塔 洛谷 P1573 棧的操作

2021-08-03 02:53:01 字數 454 閱讀 3129

首先,看出本題的題目原型是hanoi四塔。

其次,想出動規方程:e[i]=min(2*e[j]+f[i-j])(1<=j < i)(其中f為hanoi三塔的結果,e為hanoi四塔的結果)

最後:找規律。發現e相鄰兩數的差為:1,2,2,4,4,4,8,8,8,8,16,16,16,16,16,…利用此性質解決100%的資料。

我靠我已經想到了dp方程啦的;

但是因為不知道在模域裡怎麼取min不知道;

然後就放棄啦;

555555555555

#include

#define ll long long

using namespace std;

ll n,k,v,ans,mo=1e6+7;

int main()

洛谷 P1573 棧的操作

題目描述 現在有四個棧,其中前三個為空,第四個棧從棧頂到棧底分別為1,2,3,n。每乙個棧只支援一種操作 彈出並壓入。它指的是把其中乙個棧a的棧頂元素x彈出,並馬上壓入任意乙個棧b中。但是這樣的操作必須符合一定的規則才能進行。規則1 a棧不能為空。規則2 b棧為空或x比b棧棧頂要小。對於給定的n,請...

洛谷P1242 新漢諾塔

首先要將第n個盤子從x到y,那麼就要把比n小的盤子全部移到6 x y,然後將n移到y 仔細想想 6代表的是3根初始柱,3根目標柱。6 x y 便是我們的中轉柱了,因為到這個位置是最優的。感覺題目有鍋啊。include include include include using namespace s...

dfs 洛谷 P1242 新漢諾塔

題目描述 設有n個大小不等的中空圓盤,按從小到大的順序從1到n編號。將這n個圓盤任意的迭套在三根立柱上,立柱的編號分別為a b c,這個狀態稱為初始狀態。現在要求找到一種步數最少的移動方案,使得從初始狀態轉變為目標狀態。移動時有如下要求 一次只能移乙個盤 不允許把 移到小盤上面。輸入輸出格式 輸入格...