快速冪模版 例題

2021-08-28 23:00:25 字數 949 閱讀 6695

分析:我們可以採用間接的方式來進行求解,用總共的狀態數減去不符合的狀態數。

總狀態數為;m^n

不符合的狀態數為:m*(m-1)^n-1

總的狀態數很容易理解,有m種宗教,n個人都可以選擇乙個,所以有m^n,不符合的狀態數我們可以這樣想,第乙個人有m種選擇,既然要不能越獄,那麼第二個人只能有m-1種選擇,第三個人一直到最後乙個都是不能與前乙個相同,所以都是m-1;

接下來的話就是計算,但是n,m很大,所以我們需要用到快速冪計算m^n;

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

typedef long long ll;

const double pi = acos(-1.0);

const double eps = 1e-6;

const int max = 0x3f3f3f3f;

const int min = 0xc0c0c0c0;

const int maxn = 123456;

#define mod 100003

#define mst(a) memset(a,0,sizeof(a))

#define w(i) while(i--)

#define forij(i,j,k,step) for(int i=k;i>1;//除以2

m*=m%mod;

}return num;

}int main()

cout<

return 0;

}

模版 快速冪 矩陣快速冪

原理 x yx y xy中的 y yy 轉化成二進位制數,然後每乙個 1 11 對應 x xx 的 i ii 次方 這樣把x yx y xy轉化成了x yx y xy x ax a xa x bx b xb x cx c xc 通過對 x xx 不斷翻倍的過程,來匹配y轉成二進位制的 111。如果為...

模版 矩陣快速冪

矩陣快速冪就是快速冪的矩陣用法 ll fast power ll fp a ll fp n ll fp p return ret 得到遞推公式後推出轉移矩陣然後就套模版啦 include include define mod 1000000009 define ll long long using ...

矩陣快速冪模版

const int n 10 int tmp n n void multi int a n int b n int n 上訴res陣列就等同於普通快速冪初始化的1,原理想通的,這個矩陣叫單位矩陣e,性質就是e a a,就是1 a a,一樣,單位矩陣就是對角線全是1其他全是0 最終算出的結果是乙個re...