九連環time limit: 1000 ms
memory limit: 65536 k
total submit: 65(37 users)
total accepted: 34(31 users)
rating:
special judge: no
description
相信大家都玩過九連環的遊戲 ,九連環的規則是 :
1第乙個環可以在任何時候掛到柄上或者從柄上摘下
2在任何時候,你只能操作乙個環
3如果前k-2個環都沒有在柄上,並且第k-1個環在柄上,這時如果第k個環在柄上的話,可以把它摘下來,如果它不在柄上,可以把它掛上去
input
給定乙個數n,n不大於10的8次方,你的任務是輸出從柄上摘下n個環需要的最小操作次數,測試資料不超過100組。
output
輸出1行,因為結果非常大,所以你需要輸出結果對素數10007的餘數。
sample input12
9sample output12
341思路:每乙個翻轉必須他前面個那個向上,前面k-2個必須全部向下。
0表示上,1表示下,假設6個環初始是000000,首先肯定要將最後乙個朝下,前提是變成111100,這裡有個子問題,把前四個朝 下,
是f(4), 可以想到可能有這麼乙個公式
f[n] = f[n-2]+x, 這個x是每次要把111100全部向下所需的步驟,手動模擬幾個可以發現規律
每種這樣操作需要2^(len-1)次。
所以公式就是f[n] = f[n-2]+2^(n-1),然後直接構造矩陣快速冪就行了。
**:
#include#include#includeusing namespace std;
const int mod = 1e4+7;
struct node
;node mul(node a, node b)
node mt_pow(node p, int k)
return q;
}int main(void)
}return 0;
}
九連環 好玩的九連環
九連環是中國最傑出的益智遊戲。九連環作為我國民間玩具,以金屬絲製成9個圓環,將圓環套裝在橫板或各式框架上,並貫以環柄。遊戲時,按照一定的程式反覆操作,可使9個圓環分別解開,或合而為一。九連環 現已成為一種國際性的益智遊戲,國內外都有學者在研究,拆解九連環的過程中也蘊含著一些數學原理。九連環的迷人之處...
九連環 兒子的玩具 九連環
兒子是7月22號結束了中考,23號參加自主招生考試,24號收到錄取 25號領取通知書,26號正式上課成為一名高中生,結束初中生活還沒來得及歇歇高中就這樣開始了。高中生活非常緊張,早上六點起床趕去學校上自習,晚上十點下課,回到家基本上是十點十五分之間,週日下午放假六小時,晚上接著到校自習,每天的學習時...
九連環 九連環中的數學原理
九連環作為我國民間玩具,以金屬絲製成9個圓環,將圓環套裝在橫板或各式框架上,並貫以環柄。遊戲時,按照一定的程式反覆操作,可使9個圓環分別解開,或合而為一。九連環 現已成為一種國際性的益智遊戲,國內外都有學者在研究,拆解九連環的過程中也蘊含著一些數學原理。2.如圖二所示,如果某乙個環在上面的環杆上,而...