大意略。
思路:递推即可。
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
int d[110][110];
int n, k;
int read_case()
{
memset(d, 0, sizeof(d));
scanf("%d%d", &n, &k);
if(!n && !k) return 0;
return 1;
}
void solve()
{
for(int i = 0; i <= k; i++) d[i][0] = 1;
for(int i = 1; i <= k; i++)
{
for(int j = 1; j <= n; j++)
{
for(int q = 0; q <= j; q++)
{
d[i][j] += d[i-1][j-q];
if(d[i][j] >= 1000000) d[i][j] %= 1000000;
}
}
}
printf("%d\n", d[k][n]);
}
int main()
{
while(read_case())
{
solve();
}
return 0;
}