題意:給定1~n的乙個排列,能做的動作是逆轉第1~第m個數,給出一種方案使數列變成1~n。
思路:簡單模擬,之所以簡單是因為不是求最少的運算元,而是給出一種方案即可。可是我還是貢獻了wa,因為理解錯了題意。題目中flip是指逆轉第1~第m的序列,而我理解成了交換第1和第m個數,orz。每次將最大的不在最終位置的數移動回去即可~
#include #include using namespace std;
#define n 35
int s[n],n,res[n<<1];
int main()
res[len++] = i;
reverse(&s[1], &s[i+1]);}}
printf("%d ",len);
for(i = 0;i
漢諾塔 模擬
古老的漢諾塔問題是這樣的 用最少的步數將n個半徑互不相等的圓盤從1號柱利用2號柱全部移動到3號柱,在移動的過程中小盤要始終在 的上面。現在再加上乙個條件 不允許直接把盤從1號柱移動到3號柱,也不允許直接把盤從3號柱移動到1號柱。把盤按半徑從小到大用1到n編號。每種狀態用n個整數表示,第i個整數表示i...
93 漢諾塔(三) 模擬
時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 在印度,有這麼乙個古老的傳說 在世界中心貝拿勒斯 在印度北部 的聖廟裡,一塊黃銅板上插著三根寶石針。印度教的主神梵天在創造世界的時候,在其中一根針上從下到上地穿好了由大到小的64片金片,這就是所謂的漢諾塔。不論白天黑夜,總有乙個...
陣列模擬漢諾塔問題
includeint step 0 全域性變數step用於統計步數 int main int mid 5 right 5 用三個陣列模擬三個柱子,5個數字表示由大到小的5個盤子 int steps int hanoi com int n,int a 5 int b 5 int c 5 steps h...