现在的位置: 首页 > 综合 > 正文

UVA 10943 How do you add?

2019年04月06日 ⁄ 综合 ⁄ 共 457字 ⁄ 字号 评论关闭

大意略。

思路:递推即可。

#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;
}

抱歉!评论已关闭.