時間限制: 1 sec 記憶體限制: 128 mb
提交: 16 解決: 11
[提交][狀態][討論版]
a[1]=a[2]=a[3]=1
a[x]=a[x-3]+a[x-1] (x>3)
求a數列的第n項對1000000007(10^9+7)取餘的值。
第一行乙個整數t,表示詢問個數。
以下t行,每行乙個正整數n。
每行輸出乙個非負整數表示答案。
36810
4919對於30%的資料 n<=100;
對於60%的資料 n<=2*10^7;
對於100%的資料 t<=100,n<=2*10^9;
【分析】矩陣快速冪
#include #include#include
#include
using
namespace
std;
const
long
long m = 1e9+7
;const
long
long n = 3
;long
long t=1,b=1,c=0,f1=1,f2=1
;struct
node};
node isit(node x,
long
long
c)
node matlab(node x,node s) }}
return
ans;
}long
long fast_matrax(long
long
n) tmp=matlab(tmp,tmp);
n/=2
; }
return ans.a[0][0];}
intmain()
return0;
}
寒假集訓 Find Metal Mineral
題目鏈結 題意 給出一顆生成樹,1 n 10000,在某乙個節點有k個機械人 k 10 然後機械人從這裡開始走,要求遍歷完節點,隨便停到什麼地方.求最少的路程總和.題解 樹形dp,關鍵是dp u i i的定義,因為機械人可能從子樹再跑回來,然後為了避免重複討論,應該定義為 在u為根的子樹上停了幾個機...
寒假集訓總結
寒假的訓練以不太順利的結果結束。整個寒假訓練都是兩天一場學長抓的訓練賽,然後補題,由於自己比較菜以及一些莫名的因素,導致訓練賽打得比較差,尤其是後幾場。訓練賽沒能打好的原因可能與狀態關係確實很大,但其中肯定與實力有關吧。總結一下,這些題目,演算法和思維上難倒自己的好像也沒幾道 後來補出來的 但是賽場...
ACM寒假集訓
出自 南昌理工學院acm集訓隊 什麼是dfs?void dfs 狀態 a 1.判斷狀態是否合法。合法繼續執行,否則則回到上次呼叫 2.先下走一層,也就是呼叫dfs a void dfs 引數用來表示狀態 if 越界或者是不合法狀態 return if 特殊狀態 剪枝 return for 擴充套件方...