HDU - 2602(동적 계획, 01 가방 문제)

794 단어 동적 기획
제목:
용적을 정하고, 뼈를 어떻게 줍는가가 가방의 가치를 가장 높일 수 있다.(일반 01 가방 질문)
문제 해결 방법:
pp[j]는 j 공간을 등지고 포장할 때의 최대 가치를 나타내며 스크롤 그룹을 사용한다.
다음은 코드입니다.
#include 
#include 
#include 

using namespace std;

int main()
{
	int t,i,j,total,n;
	int dp[1005],w[1005],v[1005];
	scanf("%d",&t);
	
	while(t--)
	{
		scanf("%d%d",&n,&total);
		for(i = 0;i < n;i++)
		{
			scanf("%d",&v[i]);
		}
		for(i = 0;i < n;i++)
		{
			scanf("%d",&w[i]);
		}
		memset(dp,0,sizeof(dp));
		for(i = 0;i < n;i++)
		{
			for(j = 0;j <= total;j++)
			{
				if(total - j >= w[i])
					dp[j] = max(dp[j],dp[j+w[i]]+v[i]);
			}
		}
		printf("%d
",dp[0]); } return 0; }

좋은 웹페이지 즐겨찾기