01 가방
6582 단어 알고리즘
0 - 1 가방 문제: n 가지 물품 과 용량 이 C 인 가방 을 정 하고 물품 i 의 무 게 는 wi 이 며 그 가 치 는 vi 이다.
― 가방 에 들 어 가 는 아 이 템 을 어떻게 선택해 야 가방 에 들 어 가 는 아 이 템 의 총 가치 가 가장 큽 니까?
더욱 구체 적 인 추상 적 인 문 제 는 다음 과 같다.
n 개의 옵션 이 있 고 가 치 는 vi 이 며 소모 와 이 는 총 소모 가 C 인 상황 에서 선택 하여 총 가치 가 가장 크다.
dpi] [j] 를 사용 하면 i 번 째 옵션 을 선택 할 수 있 는 최대 값 을 사용 할 수 있 음 을 표시 합 니 다. 현재 옵션 을 선택 하거나, 현재 옵션 을 선택 하지 않 거나, 현재 옵션 을 선택 하지 않 거나: d p [i] [i] [j] = {d p [i - 1] [j], j < w i m a x (d p [i] [j − i] + v i, d p [i - 1] [i] [i]] [j]] [j] j] = [j] = w p [i] [i]]] [j] [i]]]] [j]]]] [j p [i p [i]] j]]]]]]] j = w i p [i p [i p [i]]]] [j]]]]] [j]] j] ={dp [i - 1] [j], max (dp [i] [j - wi] + vi, dp [i - 1] [j]) j < wij > = wi 는 아래 에서 위로 옮 겨 다 니 며 먼저 물건 을 옮 겨 다 니 고 비용 을 소모 하 는 것 은 먼저 바 텀 아 이 템, 저 용량 의 기록 을 기록 한 것 과 같 으 며 꼭대기 층 은 기록 을 알 고 있 기 때문에 빠 른 판단 을 할 수 있다.
for(int i=1;i<=n;i++)
{
for(int j=1;j<=c;j++)
{
if(j>=w[i])
m[i][j]=max(m[i-1][j],m[i-1][j-w[i]]+v[i]);
else
m[i][j]=m[i-1][j];
}
}
주의해 야 할 것 은 모든 동 귀 실현 시 경계 조건 과 바 텀 조건 의 설정 에 주의해 야 하고 반드시 공식 적 인 의미 에 부합 해 야 한 다 는 것 이다.
최대 가 치 를 얻 을 수 있 는 선택 항목 을 확인 합 니 다.
다른 x [] 배열, x [i] = 0 은 안 가 져 가 겠 다 고 표시 하고 x [i] = 1 은 가 져 가 겠 다 고 표시 한다.
for(int i=n;i>1;i--)
{
if(m[i][c]==m[i-1][c])
x[i]=0;
else
{
x[i]=1;
c-=w[i];//
}
}
x[1]=(m[1][c]>0)?1:0;// ,
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
물체 검출의 평가 지표 IoU의 계산 방법Yolo나 SSD 등 물체 검출에서 평가 지표로 사용되는 IoU에 대해 조사했으므로 정리했습니다. IoU (Intersection over Union)는 두 영역이 얼마나 겹치는지를 나타내는 지표입니다. 두 영역의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.