Guest User

Untitled

a guest
Oct 20th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. require 'csv'
  3.  
  4. $matrix = []
  5. CSV.foreach("matrix.txt") {|row|
  6. $matrix << row.map(&:to_i)
  7. }
  8.  
  9. $transposed_matrix = $matrix.transpose # 転置行列
  10.  
  11. $memo = Array.new($matrix.size) { Array.new($matrix.size, nil) }
  12.  
  13. def solv
  14. (0...$matrix.size).each {|i|
  15. $memo[i][0] = $matrix[i][0]
  16. }
  17. (1...$matrix.size).each {|j|
  18. (0...$matrix.size).each {|i|
  19. arr = []
  20. (0...$matrix.size).each {|ii|
  21. arr << $memo[ii][j-1] + if ii < i
  22. $transposed_matrix[j][ii..i].reduce(:+)
  23. elsif ii == i
  24. $transposed_matrix[j][ii]
  25. else
  26. $transposed_matrix[j][i..ii].reduce(:+)
  27. end
  28. }
  29. $memo[i][j] = arr.min
  30. }
  31. }
  32. end
  33.  
  34. solv
  35. p $memo.transpose[-1].min
Add Comment
Please, Sign In to add comment