동적 기획 01 가방 기록
1146 단어 동적 기획
1、모든 종류 아이템 종류마다 1 개
2、한 번에 하나만 수령 가능하며 아이템 분할불가
3、찾거나 안 찾거나 (그래서 01가방이라고 하는데 이 두 가지 상황만 있음)
4、가방의 용량이 부족한 전제에서 가능한 한 많은 최대 가치의 아이템을 장착
가방의 용량은 V이고 i번째 아이템의 무게는weigh[i]에 대응하는 가치는price[i]이다.용량이 j(j의 최대치가 가방의 용량)인 가방이 장착할 수 있는 최대 가치는 dp[j]
n은 모든 물품의 개수이다. 우리는 첫 번째 데이터부터 시작한다. 이 물품의 무게가 weigh[1]이면 우리는 weigh[1]보다 큰 모든 가방을 첫 번째 물품(즉 dp[V]부터
dp[weigh[1]) 이때 모든 weigh[1] 무게보다 큰 가방은 첫 번째 아이템에 장착됩니다.
다음에 우리는 두 번째 아이템을 장착합니다. 이때 마찬가지로 우리는 모든 용량이 weigh[2]보다 큰 가방에 두 번째 아이템을 장착해야 합니다. 그러나 첫 번째 아이템을 장착할 때 일부 가방은 이미 장착했습니다.
첫 번째 물품인데 어떡하지?아래의 몇 가지 상황으로 나누다
1. 첫 번째 물품을 넣은 후 용량이 부족하여 두 번째 물품을 넣을 수 없고 첫 번째 물품의 가치가 두 번째 물품보다 크면 두 번째 물품을 넣지 않는다
2. 첫 번째 물품을 넣은 후 남은 용량이 부족하여 두 번째 물품을 넣었을 때 첫 번째 물품의 가치가 두 번째 물품보다 크지 않으면 두 번째 물품을 넣고 첫 번째 물품을 꺼낸다(당연히 프로그램에서
중 첫 아이템 픽업으로 즉시 커버 가능)
3、첫 번째 아이템을 장착한 후 용량이 두 번째 아이템을 장착할 수 있다면 두 아이템을 가방에 함께 장착
코드 구현:
for(i=0;i<n;i++)
{
for(j=V;j>=weigh[i];j++)// weigh[i]
{
dp[j]=max(dp[j],dp[j-weigh[i]]+price[i]);
}
}
이것으로 유추하다
큰 신은 분출하지 마라
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
01 가방, 완전 가방, 다중 가방 dp(동적 기획 입문 dp)01 가방은 2진법으로 직접 표시할 수 있지만 데이터 양이 너무 많으면 시간을 초과하는 것이 폭력이다.01 가방의 사상은 바로 이 물품에 대해 내가 넣은 가치가 큰지 안 넣은 가치가 큰지 비교하여 방정식 f[i][v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.