为什么一维和二维结果输出时一维/2,二维不用
查看原帖
为什么一维和二维结果输出时一维/2,二维不用
1454226
nmmnmm楼主2024/12/9 23:59

for (int i = 1; i <= n; i++)//前i个数 { for (int j = sum; j >= i; j--)//和为j { dp[j] += dp[j - i]; } } cout << dp[sum]/2; 一维的处理


for (int i = 2; i <= n; i++)
{
	for (int j = 0; j <= sum; j++)
	{
		if (j > i)
		{
			dp[i][j] = dp[i - 1][j - i] + dp[i - 1][j];
		}
		else
		{
			dp[i][j] = dp[i - 1][j];
		}
	}
}
cout << dp[n][sum];

二维的处理

2024/12/9 23:59
加载中...