Guest User

Untitled

a guest
Nov 20th, 2010
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.81 KB | None | 0 0
  1. 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]]
  2.  
  3. N,Q = 14,5
  4. K = [ [None]*N for i in range(Q) ]
  5. J = [ [None]*N for i in range(Q) ]
  6.  
  7. K[0][0] = 0
  8. for i in range(1,N): K[0][i] = K[0][i-1] + a[i][1] * a[i][2]
  9.  
  10. for p in range(1,Q):
  11.     K[p][0] = None
  12.     for i in range(1,N):
  13.         l = s = 0
  14.         min = jump = None
  15.         for o in range(i,p-1,-1):
  16.             s += a[o][2]
  17.             if (min==None or min > l + K[p-1][o-1]):
  18.                 min = l + K[p-1][o-1]
  19.                 jump = o
  20.             l += s * (a[o][1] - a[o-1][1])
  21.         K[p][i] = min
  22.         J[p][i] = jump
  23.  
  24. for i in range(1,Q):
  25.     l,q = [],N
  26.     for o in range(i,0,-1):
  27.         q = J[o][q-1]
  28.         l.insert(0, q+1)
  29.     print l
Advertisement
Add Comment
Please, Sign In to add comment