典型的倍增法的應用,這裡我用了遞迴的方式實現,這樣比較直觀,也比較好寫(主要是因為迭**的一直wa),注意輸入的時候需要取模。
#include #include #include using namespace std;
const int maxn=50;
typedef int matrix[maxn][maxn];
int n,k;
void print_matrix(matrix a)
memcpy(res,r,sizeof(r));
}matrix a,b;
void solve(int k,matrix res)
matrix a,b,c,r;
solve(k/2,r);
mat_pow(a,k/2,a);
mat_mul(a,r,b);
mat_add(b,r,r);
if(k%2==1)
memcpy(res,r,sizeof(r));
}int main()
{ while(scanf("%d%d",&n,&k)==2 && n)
{for(int i=0;i
數學專項number theory LA 2955
一道關於梅森素數的題,這裡需要先得出乙個猜想,那就是只有梅森素數的一次冪的乘積的因子之和才能為2的次冪。這個猜想我不會證明,我只是測了下前100個素數,然後就覺得這個猜想應該是正確的,結果也確實如此。求數學帝證明 2 31內僅有8個梅森素數,只要將每個pi因式分解,直接剔除那些既不是梅森素數,也不是...
數學專項number theory LA 3262
題意就是找出n 1 n 65536 的乙個倍數,要求組成該數的不同數 0 9 最少,多解時,輸出最小的。學過離散的都知道,通過鴿巢原理,組成解的不同數最多為2,且每種組合最多經歷n個狀態,所以暴力列舉所有組合的複雜度為65536 100,完全可以接受。這裡需要自己手寫乙個高精度類以比較大數,先列舉乙...
11 數學庫函式及其使用
數學庫函式及其使用 標頭檔案 include 標準庫里有一組數學函式,它們可以計算出常用數學函式的函式值。三角函式 sin cos tan 反三角函式 asin acos atan 雙曲函式 sinh cosh tanh 以 e 為底的指數函式 exp 自然對數函式 log 以 10 為底的對數函式...