把常用的数学模板放这里免得忘了
素数表

1 void Prime() { 2 for (int i = 0;i <= maxn;++i) 3 prime[i] = 1; 4 for (int i = 2; i <= maxn; ++i) { 5 if (prime[i]) { 6 for (int j = 2; i*j <= maxn; ++j) 7 prime[i*j] = 0; 8 } 9 } 10 prime[0] = prime[1] = 0; 11 prime[2] = 1; 12 }
组合数

1 int cur[maxn][maxn] = { 1 }; 2 3 //预处理 利用杨辉三角计算组合数 4 void init(){ 5 int i, left, right; 6 for (i = 1; i <= maxn; i++){ 7 cur[i][0] = cur[i][i] = 1; 8 left = 1, right = i - 1; 9 while (left <= right){ 10 cur[i][left] = cur[i - 1][left - 1] + cur[i - 1][left]; 11 cur[i][right--] = cur[i][left++];//组合数性质cur[i][j]=cur[i][i-j]; 12 } 13 } 14 }
高精度幂取模

1 #include <iostream> 2 #include <string> 3 using namespace std; 4 int main() 5 { 6 unsigned long long b,c,cur,res,i; 7 string a; 8 while(cin>>a){ 9 cin>>b>>c; 10 for(i=cur=0;a[i]!='