同学的代码:
去掉了一些不重要的语句
有没有大佬看得懂?
long long k[1000010][4],s[1010];
int main(){
k[0][1]=2;k[0][2]=4;k[0][3]=7;
for(int i=1;i<=1000000;++i){
k[i][1]=(14614699*k[i-1][1]+12817864*k[i-1][2]+15953450*k[i-1][3])%19260817;
k[i][2]=(15953450*k[i-1][1]+11307332*k[i-1][2]+9510497*k[i-1][3])%19260817;
k[i][3]=(9510497*k[i-1][1]+6203130*k[i-1][2]+1557012*k[i-1][3])%19260817;
}
while(m--){
if(!n){cout<<1<<endl;continue;}
int q=(n-1)/1000,r=(n-1)%1000+1;
s[1]=k[q][1];s[2]=k[q][2];s[3]=k[q][3];
for(int i=4;i<=r;++i) s[i]=(s[i-1]+s[i-2]+s[i-3])%19260817;
cout<<s[r]<<endl;
}
}