20分,感觉没啥问题?

P1192 台阶问题

````cpp #include <bits/stdc++.h> using namespace std; int n,k,a[100010]={0},sum; const int mod=100003; int main(){ cin>>n>>k; if(k==1){ cout<<1; return 0; } a[1]=1; a[2]=2; sum=3; for(int i=3;i<=k;i++){ a[i]=(sum+1)%mod; sum+=a[i]; sum%=mod; } for(int i=k+1;i<=n;i++){ for(int j=i-1;j>=i-k;j--) a[i]+=a[j]; a[i]%=mod; } cout<<a[n]%mod; return 0; } ``````
by gaojizhe05 @ 2023-11-18 21:03:15


初始化不对 ```cpp #include <bits/stdc++.h> using namespace std; long long int n,m,dp[100005]={0}; int main() { dp[0]=1; dp[1]=1; cin>>n>>m; for(int i=2;i<=m;i++) for(int j=0;j<i;j++) { dp[i]+=dp[j]; dp[i]%=100003; } for(int i=m+1;i<=n;i++){ for(int j=1;j<=m;j++){ dp[i]+=dp[i-j]; dp[i]%=100003; } } cout<<dp[n]%100003; return 0; } ```
by Li_wenjie @ 2023-11-18 21:11:31


|