Computer >> Máy Tính >  >> Lập trình >> Python

Tìm thời gian tối thiểu mà sau đó một người có thể trao đổi ghi chú bằng Python


Giả sử có n nhân viên thu ngân đổi tiền, lúc này, nhân viên thu ngân thứ i có số người đứng trước mặt. Bây giờ, người thứ j trong hàng đến quầy thu ngân thứ i có m [i, j] ghi chú. Chúng ta phải tìm cách một người có thể trao đổi ghi chú của mình sớm như thế nào. Chúng tôi cần lưu ý rằng nhân viên thu ngân dành 5 giây để quét một ghi chú, sau khi hoàn tất việc quét từng ghi chú cho khách hàng, anh / cô ấy mất 15 giây để trao đổi các ghi chú.

Vì vậy, nếu đầu vào giống như Đầu vào:n =6, k =[12, 12, 12, 12, 12, 12]

7 8 9 7 9 6 10 9 9 6 7 8
10 7 10 9 8 9 9 9 9 6 5 6
9 8 8 9 8 6 7 9 10 6 6 7
7 6 9 6 6 9 8 9 6 6 8 9
9 8 7 6 5 10 8 10 7 6 6 8
8 7 6 5 7 9 7 9 6 5 5 7

thì đầu ra sẽ là 585, vì nhân viên thu ngân cần 5 giây để quét mọi ghi chú của mỗi khách hàng, vì vậy hãy thêm 5 * m [I, j]. Bây giờ mỗi nhân viên thu ngân mất 15 giây cho mỗi khách hàng, vì vậy hãy thêm 15 * k [] vào câu trả lời. Thời gian tối thiểu sau khi tính toán thời gian thực hiện của mỗi nhân viên thu ngân sẽ là câu trả lời. Vì vậy thu ngân m [5] mất thời gian tối thiểu 585.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • n:=kích thước của k

  • tối thiểu:=99999

  • đối với tôi trong phạm vi từ 0 đến n, hãy thực hiện

    • tạm thời:=k [i] * 15

    • đối với j trong phạm vi từ 0 đến k [i], thực hiện

      • temp:=temp + m [i, j] * 5

    • nếu nhiệt độ

      • tối thiểu:=temp

  • trả lại tối thiểu

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

def minTimeToExchange(k, m):
   n = len(k)
   minimum = 99999
   for i in range(n):
      temp = k[i] * 15
   for j in range(k[i]):
      temp += m[i][j] * 5
   if temp < minimum:
      minimum = temp
   return minimum

k = [12, 12, 12, 12, 12, 12]
m = [
   [7,8,9,7,9,6,10,9,9,6,7,8],
   [10,7,10,9,8,9,9,9,9,6,5,6],
   [9,8,8,9,8,6,7,9,10,6,6,7],
   [7,6,9,6,6,9,8,9,6,6,8,9],
   [9,8,7,6,5,10,8,10,7,6,6,8],
   [8,7,6,5,7,9,7,9,6,5,5,7]]
print(minTimeToExchange(k, m))

Đầu vào

[12, 12, 12, 12, 12, 12],
[[7,8,9,7,9,6,10,9,9,6,7,8],
[10,7,10,9,8,9,9,9,9,6,5,6],
[9,8,8,9,8,6,7,9,10,6,6,7],
[7,6,9,6,6,9,8,9,6,6,8,9],
[9,8,7,6,5,10,8,10,7,6,6,8],
[8,7,6,5,7,9,7,9,6,5,5,7]]

Đầu ra

585