漢諾塔(四)(暴力)

2022-03-29 03:04:34 字數 1013 閱讀 4493

時間限制:3000 ms  |  記憶體限制:65535 kb

難度:2

描述漢諾塔問題是乙個經典的問題,現在我們有 n 個柱子和 m 個編號(1~m)的球,我們現在要求把盡量多的球放在盡量少的柱子上,如果相鄰兩個球的和不是完全平方數的話球會相互排斥而無法接觸。(注意:球必須從小到大放,每次只能放在其他球的上面或者乙個新的柱子上面)

輸入首先乙個t,表示t組測試資料,然後乙個n(1<=n<=50).

輸出輸出一行,表示n個柱子能放的最大的球編號。

樣例輸入

1

4

樣例輸出

11

題解:暴力

**:

#include#include#include#include#include#includeusing namespace std;

const int inf=0x3f3f3f3f;

#define mem(x,y) memset(x,y,sizeof(x))

#define si(x) scanf("%d",&x)

#define sl(x) scanf("%lld",&x)

#define pi(x) printf("%d",x)

#define pl(x) printf("%lld",x)

#define p_ printf(" ")

#define t_t while(t--)

const int maxn=2010;

bool c[maxn];

int t;

int main(){

si(t);

int n;

t_t{

si(n);

mem(c,false);

int cur;

setst;

for(int i=1;i<=100;i++)st.insert(i*i);

int cnt=n+1;

int ans;

for(int i=1;i

四柱漢諾塔

多柱漢諾塔的解析 題目鏈結 分析 現在有四根柱子a b c d,我們假設盤子從a移動到d,先把a的n個盤子拿出r個借助其他兩個柱子放到b上這是f n r 接著這個柱子就先不動,然後開始動a上剩下的r個盤子,現在b已經不能放這r個,我們只能通過c柱子把r個移動到d上去。這裡只用到了c柱子和目標柱子,所...

四盤漢諾塔

在傳統的漢諾塔遊戲中多加了乙個盤子。問把n層的漢諾塔從第乙個盤子移到第四個盤子需要多少步?要將n層從1號盤移動到3號盤,需要分為三步 1 把n 1層從1號移動到2號 n層要移動到3號,為了不影響n層的移動只能移動到2號 2 把n層從1移動到3號 3 把n 1層從2號移到3號 把第乙個步驟又能細分成類...

python 漢諾塔 Python漢諾塔

import turtle class stack def init self self.items def isempty self return len self.items 0 def push self,item def pop self return self.items.pop def ...