数学专题测试2

先放代码

 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         X23=X22*x%mod,X24=X23*x%mod,X25=X24*x%mod,X26=X25*x%mod,
26         X27=X26*x%mod,X28=X27*x%mod,X29=X28*x%mod,X30=X29*x%mod,
27         X31=X30*x%mod,X32=X31*x%mod,X33=X32*x%mod,X34=X33*x%mod,
28         X35=X34*x%mod,X36=X35*x%mod,X37=X36*x%mod,X38=X37*x%mod,
29         X39=X38*x%mod,X40=X39*x%mod,X41=X40*x%mod,X42=X41*x%mod,
30         X43=X42*x%mod,X44=X43*x%mod,X45=X44*x%mod,X46=X45*x%mod,
31         X47=X46*x%mod,X48=X47*x%mod,X49=X48*x%mod,X50=X49*x%mod,ans=0;
32         register int j;
33         for(j=n-1;j>49;j-=50){
34             ans=ans*X50,ans+=a[j]*X49,ans+=a[j-1]*X48,
35             ans+=a[j-2]*X47,ans+=a[j-3]*X46,ans+=a[j-4]*X45,
36             ans+=a[j-5]*X44,ans+=a[j-6]*X43,ans+=a[j-7]*X42,
37             ans+=a[j-8]*X41,ans+=a[j-9]*X40,ans+=a[j-10]*X39,
38             ans+=a[j-11]*X38,ans+=a[j-12]*X37,ans+=a[j-13]*X36,
39             ans+=a[j-14]*X35,ans+=a[j-15]*X34,ans+=a[j-16]*X33,
40             ans+=a[j-17]*X32,ans+=a[j-18]*X31,ans+=a[j-19]*X30,
41             ans+=a[j-20]*X29,ans+=a[j-21]*X28,ans+=a[j-22]*X27,
42             ans+=a[j-23]*X26,ans+=a[j-24]*X25,ans+=a[j-25]*X24,
43             ans+=a[j-26]*X23,ans+=a[j-27]*X22,ans+=a[j-28]*X21,
44             ans+=a[j-29]*X20,ans+=a[j-30]*X19,ans+=a[j-31]*X18,
45             ans+=a[j-32]*X17,ans+=a[j-33]*X16,ans+=a[j-34]*X15,
46             ans+=a[j-35]*X14,ans+=a[j-36]*X13,ans+=a[j-37]*X12,
47             ans+=a[j-38]*X11,ans+=a[j-39]*X10,ans+=a[j-40]*X9,
48             ans+=a[j-41]*X8,ans+=a[j-42]*X7,ans+=a[j-43]*X6,
49             ans+=a[j-44]*X5,ans+=a[j-45]*X4,ans+=a[j-46]*X3,
50             ans+=a[j-47]*X2,ans+=a[j-48]*x,ans+=a[j-49],ans%=mod;
51         }
52         for(;~j;--j) (ans=ans*x+a[j])%=mod;
53         printf("%lld\n",ans%mod);
54     }
55     return 0;
56 }
View Code

猜你喜欢

转载自www.cnblogs.com/hzoi-cbx/p/12150490.html