标签:copy \n set 格式 sizeof 输出 ++i scan 说明
有NN级的台阶,你一开始在底部,每次可以向上迈最多KK级台阶(最少11级),问到达第NN级台阶有多少种不同方式。
输入格式:
两个正整数N,K。
输出格式:
一个正整数,为不同方式数,由于答案可能很大,你需要输出ans \bmod 100003ansmod100003后的结果。
对于20\%20%的数据,有N ≤ 10, K ≤ 3N≤10,K≤3;
对于40\%40%的数据,有N ≤ 1000N≤1000;
对于100\%100%的数据,有N ≤ 100000,K ≤ 100N≤100000,K≤100。
#include<stdio.h>
#include<string.h>
#define MAX 100010
int main()
{
int n, k, i, j, s[MAX];
memset(s, 0, sizeof(s));
scanf("%d %d", &n, &k);
s[0] = 1;
for(i = 1; i <= n; ++i)
{
for(j = 1; j <= k; ++j)
{
if(i >= j)
{
s[i] = s[i] + s[i - j];
s[i] = s[i] % 100003;
}
}
}
printf("%d\n", s[n]);
return 0;
}
标签:copy \n set 格式 sizeof 输出 ++i scan 说明
原文地址:https://www.cnblogs.com/mjn1/p/10259173.html