poj 4004:数字组合

解题思路:

动态规划 dp[j+num[i]] += dp[j]

#include
#include
#include
using namespace std;
int main()
{
	int n,t;
	int num[25];
	int dp[20010];
	cin>>n>>t;
	for(int i=1;i<=n;i++)
		cin>>num[i];
	memset(dp,0,sizeof(dp));
	dp[0] = 1;
	for(int i=1;i<=n;i++)
	{
		for(int j=t;j>=0;j--)
		{
			if(dp[j]>0)
				dp[j+num[i]] += dp[j];
		}
	}
	cout<


你可能感兴趣的:(动态规划,c++,poj,动态规划)