HDU 1267(下沙的沙子有几粒?)

动态规划题,状态转移方程为 dp[i][j] = dp[i-1][j] + dp[i][j-1]  (i >= j),表示前 i+j 个位置有 i 个 H 和 j 个 D,满足要求的组合数。

#include <cstdio>
#include <cstring>
const int MAXN = 25;

__int64 dp[MAXN][MAXN];

int main()
{
	for (int i = 1; i <= 20; i++) //动态规划
	{
		for (int j = 1; j <= i; j++)
			if (j == 1)
				dp[i][j] = i;
			else
				dp[i][j] = dp[i][j - 1] + dp[i - 1][j];
	}
	int m, n;
	while (scanf("%d%d", &m, &n) == 2)
	{
		printf("%I64d\n", dp[m][n]);
	}
	return 0;
}

继续加油。

发布了206 篇原创文章 · 获赞 1 · 访问量 8996

猜你喜欢

转载自blog.csdn.net/Intelligence1028/article/details/104792491
hdu