hdu 4767 bell 中国剩余定理+矩阵快速幂

题目链接:点击打开链接

题意:求第n项bell数%95041567。

思路:

贝尔数有一些性质:点击打开链接

95041567可以分解质因数{31,37,41,43,47},首先利用递推公式暴力求出前47项,然后利用同余公式矩阵快速幂求出bell(n)%31,37,41,43,47,之后用中国剩余定理合并。

cpp:点击打开链接

#include 
#include 
using namespace std;
#define maxn 50
const int tp[5]={31,37,41,43,47};
int bell[maxn][5]={{1,1,1,1,1},{1,1,1,1,1},{2,2,2,2,2},{5,5,5,5,5},{15,15,15,15,15}};
struct Matrix {
	int n;
	int data[maxn][maxn];
	void set(int t,int tt){
		n=t;
		memset(data,0,sizeof(data));
		if(tt==1){
			for(int i=0;i


你可能感兴趣的:(数论,矩阵快速幂,中国剩余定理)