Mathematical topics Test 2

First put the code

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long LL;
 4 const int mod=1e6+3,N=6e4+5;
 5 inline int read(int x=0,bool f=0,char ch=getchar()){
 6     for(;!isdigit(ch);ch=getchar()) f=ch=='-';
 7     for(; isdigit(ch);ch=getchar()) x=(x<<3)+(x<<1)+(ch^48);
 8     return f?-x:x;
 9 }
10 int n;
11 long long a[N],b,c,d,e;
12 inline LL qpow(LL x,LL y,LL ans=1){
13     for(;y;y>>=1,x=x*x%mod) if(y&1) ans=ans*x%mod;
14     return ans;
15 }
16 int main(){
17     n=read(),b=read(),c=read(),d=read(),e=read();
18     for(int i=0;i<n;++i) a[i]=read();
19     for(int i=0;i<n;++i){
20         LL x=(b*qpow(c,4*i)+d*qpow(c,2*i)+e)%mod,X2=x*x%mod,X3=X2*x%mod,
21         X4=X3*x%mod,X5=X4*x%mod,X6=X5*x%mod,X7=X6*x%mod,X8=X7*x%mod,X9=X8*x%mod,
22         X10=X9*x%mod,X11=X10*x%mod,X12=X11*x%mod,X13=X12*x%mod,X14=X13*x%mod
23         ,X15=X14*x%mod,X16=X15*x%mod,X17=X16*x%mod,X18=X17*x%mod,
24         X19=X18*x%mod,X20=X19*x%mod,X21=X20*x%mod,X22=X21*x%mod,
25         X 23 = X 22 * x% v, X24 = X23 * x% v, X25 = X24 * x% v, X26 = X25 * x% v,
 26          X 27 = X 26 * x% v, X28 = X27 * x% v, X29 = X 28 * x% v, X30 = X29 * x% v,
 27          X 31 = X 30 * x% v, X 32 = X 31 * x% v, X 33 = X 32 * x% v, X34 = X33 * x% v,
 28          X35 = X 34 * x% v, X36 = X35 * x% v, X37 = X36 * x% v, X38 = X37 * x% v,
 29          X39 = X38 * x% v, X40 = X39 * x% v, X41 = X40 * x% v, X42 = X41 * x% v,
 30          X43 = X42 * x% v, X44 = X43 * x% v, X45 = X44 * x% v, X46 = X45 * x% v,
 31          X47 = X46 * x v%, X48 = X47 * x v%, X49 = X48 * x v%, X50 = X49 * x v%, ans = 0 ;
32          register int j;
33         for (j = n- 1 ; j> 49 ; j- = 50 ) {
 34              year = years * X50, and + = a [j] * X49, and + = a [j- 1 ] * X48,
 35              years + = a [ j- 2 ] * X47, and + = a [j- 3 ] * X46, and + = a [j- 4 ] * X45,
 36              years + = a [j- 5 ] * X44, and + = a [j- 6 ] * X43, and + = a [j- 7 ] * X42,
 37              years + = a [j- 8 ] * X41, and + = a [j- 9 ] * X40, and + = a [j- 10 ] * X39,
 38              years + = a [j- 11] * X38, and + = a [j- 12 ] * X37, and + = a [j- 13 ] * X36,
 39              years + = a [j- 14 ] * X35, and + = a [j- 15 ] * X34, years + = a [j- 16 ] * X33,
 40              years + = a [j- 17 ] * X32, and + = a [j- 18 ] * X31, and + = a [j- 19 ] * X30,
 41              years + = a [j - 20 ] * X29, and + = a [j- 21 ] * X28, and + = a [j- 22 ] * X27,
 42              years + = a [j- 23 ] * X26, and + = a [j- 24 ] * X25 , years + = a [j- 25 ] * X24,
43              years + = a [j- 26 ] * X23, and + = a [j- 27 ] * X22, and + = a [j- 28 ] * X21,
 44              years + = a [j- 29 ] * X20, and + = a [ j- 30 ] * X19, and + = a [j- 31 ] * X18,
 45              years + = a [j- 32 ] * X17, and + = a [j- 33 ] * X16, and + = a [j- 34 ] * X15,
 46              years + = a [j- 35 ] * X14, and + = a [j- 36 ] * X13, and + = a [j- 37 ] * X12,
 47              years + = a [j- 38 ] * X11, and + = a [j- 39] * X10, and + = a [j- 40 ] * X9,
 48              years + = a [j- 41 ] * X8, and + = a [j- 42 ] * X7, and + = a [j- 43 ] * X6,
 49              years + = a [j- 44 ] * X5, and + = a [j- 45 ] * X4, and + = a [j- 46 ] * X3,
 50              years + = a [j- 47 ] * X2, and + = a [j - 48 ] * x + years = a [j- 49 ] =% year mod;
51          }
 52          for (; ~ j - j) (years = years * x + a [j])% = mod;
53          printf ( " % lld \ n " , year%against);
54      }
 55      return  0 ;
56 }
View Code

Guess you like

Origin www.cnblogs.com/hzoi-cbx/p/12150490.html