fzu2198 快來快來數一數

2022-04-18 09:02:09 字數 1197 閱讀 6790

n個六邊形排成一行,相鄰兩個六邊形共用一條邊,如下圖所示:

記這個圖形的生成樹個數為t(n)(由於每條邊都是不同的,不存在同構的問題)。那麼t(1)=6,t(2)=35……

給出n,求

mod 1000000007

第一行給出資料組數t。

之後每一行給出乙個正整數n。

t大約為50000,n<=10^18。

每組資料輸出一行答案。

2212345678987654321

41733521876

這題用矩陣快速冪做,先用dp[i][f]表示處理到第i個矩形,第i個矩形右邊那條邊會不會不去掉的方案數,那麼dp[i][1]=d[i-1][0]+dp[i-1][1],dp[i][0]=4*dp[i-1][1]+5*dp[i-1][0].

我們可以構造矩陣【dp[i][1],dp[i][0],sum[i]  】*a=【dp[i+1][1],dp[i+1][0],sum[i+1]  】.

1 4 5

容易求出a=1 5 6

0 0 1

然後用矩陣快速冪就行了,這裡要注意,這題卡常數,所以要先初始化64個矩陣的乘方,然後再算,而且注意取模不能取太多,不然會超時。

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

typedef unsigned long long ll;

#define inf 0x7fffffff

#define pi acos(-1.0)

#define mod 1000000007

struct matrixa,b,c,d[99],t;

matrix multi(matrix &a,matrix &b)}}

return ans;

*/}matrix fast_mod(ll n)

num++;

n>>=1;

}printf("%i64d\n",(ans.data[0][2]+5*ans.data[1][2]+6*ans.data[2][2] )%mod);

}void init()

}int main()

fast_mod(n-1);

}return 0;

}

數一數網路吞吐量

假設有一台伺服器配了千兆網絡卡,獨佔千兆頻寬,乙個業務資料報大小1mb,通過tcp協議傳送,請問這台服務流量全部跑滿,最大的支援多少吞吐量。大家可以先思考一下這個問題 解決這個問題,有必要先了解一下問題中的幾個概念。千兆網絡卡 網絡卡我們都知道是一種提供計算機與傳輸介質的硬體介面。千兆則是表示傳輸速...

數一數(牛客網kmp)

kmp 思維 題解 仔細想想你會發現,當你求第i個字串的時候,如果它不是所有字串裡最短的那個,那結果一定為0 因為是累乘,有乙個為0全都為0 再然後你會發現,所有最短字串的結果應該是相同的,因為如果兩個最短字串的結果不同,那麼他們肯定不一樣,但是如果不一樣結果就會為0,所以其他所有最短字串的結果均相...

數一數Google的軟體和服務

peter lee 不知不覺中,google 走過了他的第十個年頭,印象中他還很年輕似的 不知不覺中,google 的軟體和服務已經遍地開花了,印象中 google 總是搜尋的代名詞。tools google earth 這個出自 google 實驗室的產品的確強悍,從一面世就讓所有人驚呆了。用地球...