Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- a = [[1,0,1], [2,2,2], [3,3,3], [4,6,44], [5,7,5], [6,20,6], [7,22,33], [8,34,18], [9,35,9], [10,44,10], [11,57,11], [12,66,2], [13,88,13], [14,100,44]]
- N,Q = 14,5
- K = [ [None]*N for i in range(Q) ]
- J = [ [None]*N for i in range(Q) ]
- K[0][0] = 0
- for i in range(1,N): K[0][i] = K[0][i-1] + a[i][1] * a[i][2]
- for p in range(1,Q):
- K[p][0] = None
- for i in range(1,N):
- l = s = 0
- min = jump = None
- for o in range(i,p-1,-1):
- s += a[o][2]
- if (min==None or min > l + K[p-1][o-1]):
- min = l + K[p-1][o-1]
- jump = o
- l += s * (a[o][1] - a[o-1][1])
- K[p][i] = min
- J[p][i] = jump
- for i in range(1,Q):
- l,q = [],N
- for o in range(i,0,-1):
- q = J[o][q-1]
- l.insert(0, q+1)
- print l
Advertisement
Add Comment
Please, Sign In to add comment