hrbust 1401 九連環(矩陣快速冪)

2021-09-30 13:43:55 字數 1081 閱讀 2085

九連環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.如圖二所示,如果某乙個環在上面的環杆上,而...