题解:运行超时: 20分
#include <stdio.h> #include <string.h> #include <algorithm> #define MOD 998244353 #define MAX 100000 using namespace std; long long a[MAX]; long long k[MAX]; int main(){ int m,l,r,min_; while(scanf("%d %d %d",&m,&l,&r)!=EOF){ memset(k,0,sizeof(k)); memset(a,0,sizeof(a)); a[0]=1; for(int i=1;i<=m;i++) scanf("%lld",&k[i]); for(int i=1;i<=r;i++){ //i=n min_=min(i,m); for(int j=1;j<=min_;j++){ a[i]+=( k[j]*a[i-j] ) % MOD; } a[i]%=MOD; //要在这里求模 } for(int i=l;i<=r;i++) printf("%lld ",a[i]); //不能输出时在才求模,否则会出错。为什么? } return 0; }