Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
|
|
@ -0,0 +1,37 @@
|
|||
Item = map,compass,water,sandwich,glucose,tin,banana,apple,cheese,beer,suntan cream
|
||||
,camera,tshirt,trousers,umbrella,waterproof trousers,waterproof overclothes,notecase
|
||||
,sunglasses,towel,socks,book
|
||||
Weight= 9,13,153,50,15,68,27,39,23,52,11,32,24,48,73,42,43,22,7,18,4,30
|
||||
Value = 150,35,200,60,60,45,60,40,30,10,70,30,15,10,40,70,75,80,20,12,50,10
|
||||
Bound = 1,1,2,2,2,3,3,3,1,3,1,1,2,2,1,1,1,1,1,2,1,2
|
||||
|
||||
StringSplit I, Item, `, ; Put input in arrays
|
||||
StringSplit W, Weight,`,
|
||||
StringSplit V, Value, `,
|
||||
StringSplit B, Bound, `,
|
||||
|
||||
W := 400, N := I0, I0 := V0 := W0 := 0 ; W = total weight allowed, maximize total value
|
||||
Loop %W%
|
||||
m0_%A_Index% := 0
|
||||
|
||||
Loop %N% { ; build achievable value matrix m [ N rows, W columns ]
|
||||
j := -1+i := A_Index, m%j%_0 := 0 ; m[i,P] = max value with items 1..i, weight <=P
|
||||
Loop %W% { ; m[i,P] = max_k {m[i-1,P-k*Wi]}
|
||||
p := A_Index, k := 0, y := m%j%_%p%
|
||||
While ++k <= B%i% && (r := p - k*W%i%) >= 0
|
||||
y := y < (c:=m%j%_%r%+k*V%i%) ? c : y
|
||||
m%i%_%p% := y
|
||||
}
|
||||
}
|
||||
|
||||
i := 1+j := N, p := W, s := 0
|
||||
While --i, --j { ; read out solution from value matrix m
|
||||
If (m%i%_%p% = m%j%_%p%)
|
||||
Continue
|
||||
r := p, m := m%i%_%p%, k := 1
|
||||
While 0 <= (r-=W%i%) && m%j%_%r% != (m-=V%i%)
|
||||
k++ ; find multiplier
|
||||
t := k " " I%i% "`n" t, s += k*W%i%, p -= k*W%i%
|
||||
}
|
||||
|
||||
MsgBox % "Value = " m%N%_%W% "`nWeight = " s "`n`n" t
|
||||
Loading…
Add table
Add a link
Reference in a new issue