标签:
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <cstdlib>
using namespace std;
typedef long long ll;
int n, a, b;
ll dp[305][305];
void init() {
for (int i = 0; i <= 300; i++) {
if (!i) dp[i][0] = 1;
else dp[i][0] = 0;
for (int j = 1; j <= 300; j++) {
if (i >= j) {
dp[i][j] = dp[i - j][j] + dp[i][j - 1];
} else {
dp[i][j] = dp[i][j - 1];
}
}
}
}
int main() {
init();
while (scanf("%d", &n) != EOF) {
char temp;
a = 1, b = n;
scanf("%c", &temp);
int flag = 0;
if (temp == ‘ ‘) {
flag = 1;
scanf("%d", &a);
scanf("%c", &temp);
if (temp == ‘ ‘) {
flag = 2;
scanf("%d", &b);
}
}
if (a > 300) a = 300;
if (b > 300) b = 300;
if (!flag) {
printf("%lld\n", dp[n][n]);
} else if (flag == 1) {
printf("%lld\n", dp[n][a]);
} else if (flag == 2) {
if (!a) {
printf("%lld\n", dp[n][b]);
} else printf("%lld\n", dp[n][b] - dp[n][a - 1]);
}
}
return 0;
}
标签:
原文地址:http://blog.csdn.net/llx523113241/article/details/45827147