41 果實計數(快速冪)

2021-08-21 06:35:32 字數 962 閱讀 4652

淘淘家有棵奇怪的蘋果樹,這棵樹共有n+1層,標號為0~n。這棵樹第0層只有乙個節點,為根節點。已知這棵樹為b叉樹,且保證是一顆滿b叉樹。

現在,該樹第n層的每個節點上都結出了乙個蘋果,淘淘想知道共結了多少蘋果。由於數量可能很大,答案要求輸出mod k後的結果。

給出第1層的節點數b和層數n和k

輸出蘋果數mod k後的結果。

2 10 9
7
30%的資料保證:b<=100,n<=10, k<=100.

100%的資料保證:b<2^31,n<2^31,k<=2^15.

本題說是一顆樹,其實就是求b的n次冪模k的值。運用到了快速冪,就是不使用暴力演算法,而採取分段計算的思想。

1.如果b是偶數,我們可以記k = a2 mod c,那麼求(k)b/2 mod c就可以了。

2.如果b是奇數,我們也可以記k = a2 mod c,那麼求((k)b/2 mod c × a ) mod c =((k)b/2 mod c * a) mod c 就可以了

以下是**:

#include#includeusing namespace std;

long long ans;

long long read()//快速讀入(好像沒有必要)

c=getchar();

} while(c>='0'&&c<='9')

return ans*f;

}void work(long long b,long long n,long long k)//快速冪

return ;

}int main()

簡化之後的模板,更加易懂的可以寫成:

int powermod(int a, int b, int c)

return ans;

}

簡單計數(矩陣快速冪)

題源來自牛客 題意 題意未改動,題面已改動 有乙個長度為k的佇列滿足以下條件 第乙個元素不能為1,最末乙個元素必須為1 任意兩個相鄰元素都不相同 這個數列中的所有數必須小於等於n 問 滿足條件的組合數 題解 設f 0 i 表示從第乙個元素到第i個元素,前i 1個元素滿足條件,而第i個元素非1的組合數...

快速冪水題 計數(數論)

求 a 的 b 次方,即 但是我們知道,當求到 所以,根據這個式子,可以列出遞迴 long long mod 模數 templatet long long qkpow long long a,t b 給定n,m,k都是小於10001的正整數,輸出給定的n個數中,其m次冪能被k整除的數的個數。輸出滿足...

快速冪 普通快速冪 矩陣快速冪

題意 n個人排隊,f表示女,m表示男,包含子串 fmf 和 fff 的序列為o佇列,否則為e佇列,有多少個序列為e佇列。分析 矩陣快速冪入門題。下面引用巨巨解釋 用f n 表示n個人滿足條件的結果,那麼如果最後乙個人是m的話,那麼前n 1個滿足條件即可,就是f n 1 如果最後乙個是f那麼這個還無法...