淘淘家有棵奇怪的蘋果樹,這棵樹共有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那麼這個還無法...