Quản lý hàng tồn kho Minecraft là khó. Bạn có 17 viên kim cương, nhưng bạn cần 7 viên để chế tạo một chiếc bàn bùa mê, một cái cuốc và một thanh kiếm. Bạn có chọn chúng và nhấp chuột phải 7 lần? Hay bạn nhấp chuột phải một lần và nhấp chuột phải hai lần và lấy 7 trái? Thật khó hiểu!
Đối với những người hiện đang bối rối, đừng lo lắng, tôi sẽ giải thích tất cả trong giây lát
Thử thách
Cho kích thước của một chồng các mặt hàng và số lượng mong muốn, xác định số lần nhấp ít nhất để có được số tiền đó. Bạn chỉ cần xử lý tối đa 64 cho cả hai đầu vào và bạn có thể cho rằng mình có các khoảng không quảng cáo vô hạn. Bạn không thể sử dụng thủ thuật kéo để phân phối.
Các định nghĩa
Hàng tồn kho là một tập hợp các vị trí nơi bạn có thể lưu trữ các mặt hàng.
Vị trí là không gian lưu trữ trong kho của bạn, nơi bạn có thể đặt tối đa một loại mặt hàng.
Một ngăn xếp là một số vật phẩm được đặt trong cùng một nhóm. Đối với mục đích của thử thách này, một ngăn xếp chỉ đơn giản là một loạt các vật phẩm ở cùng một nơi (vì vậy bỏ qua kích thước ngăn xếp)
Con trỏ là vật nhọn của bạn. Con trỏ đó. Nó có thể có các mục "trên đó"; trong các điều khoản khác, nếu bạn nhấp vào một vị trí và nhặt các mục, các mục bạn đã chọn là "trên con trỏ" cho đến khi bạn đặt chúng xuống.
Thông số kỹ thuật
Có bốn tình huống có thể xảy ra. Hoặc bạn có một mục trên con trỏ của bạn hoặc bạn không, và bạn nhấp chuột trái hoặc nhấp chuột phải.
Nếu bạn không có mục nào trên con trỏ và nhấp chuột trái vào vị trí, bạn chọn toàn bộ ngăn xếp.
Nếu bạn không có một mục trên con trỏ của mình và bạn nhấp chuột phải vào một vị trí, bạn chọn một nửa ngăn xếp, làm tròn lên.
Nếu bạn có một mục trên con trỏ và nhấp chuột trái vào một vị trí, bạn đặt tất cả các mục vào vị trí đó. (Đối với tất cả những người chơi Minecraft của bạn, bạn sẽ không có> 64 vật phẩm cho thử thách này và tất cả chúng đều có thể xếp chồng 64 và bạn chỉ có một loại nên việc hoán đổi vật phẩm không áp dụng ở đây)
Nếu bạn có một mục trên con trỏ và bạn nhấp chuột phải vào một vị trí, bạn đặt một mục vào vị trí đó.
Vì vậy, bạn bắt đầu với tất cả các mục được cung cấp (đầu vào đầu tiên hoặc thứ hai; bạn có thể chọn thứ tự) trong một vị trí và bạn muốn kết thúc với việc có số lượng mong muốn (đầu vào khác) trong con trỏ của bạn.
Hãy chạy qua một ví dụ. Giả sử bạn bắt đầu với 17 mục và bạn muốn 7. Đầu tiên, bạn nhấp chuột phải vào ngăn xếp, có nghĩa là bạn đã nhặt được 9 và có 8 mục trong khe đó. Sau đó, nếu bạn nhấp chuột phải vào ngăn xếp một lần nữa, bạn đặt một mục trở lại vào vị trí, để lại cho bạn 8 và vị trí có 9. Cuối cùng, bạn nhấp chuột phải lần nữa và bạn có 7 và vị trí có 10. Do đó, bạn sẽ trở lại 3
(số lần nhấp).
Nếu bạn quản lý để nhấp chuột vào tôi, xin vui lòng cho tôi biết và tôi sẽ chỉnh sửa ví dụ: P
Các trường hợp thử nghiệm
Chúng được tạo thủ công, vì vậy vui lòng cho tôi biết nếu có bất kỳ lỗi nào. Tôi thực hiện quản lý hàng tồn kho thông qua nhấp chuột phải để nhấp chuột phải vì vậy tôi không có kinh nghiệm với quản lý hàng tồn kho tối ưu: P
Given, Desired -> Output
17, 7 -> 3
64, 8 -> 5
63, 8 -> 5
10, 10 -> 1
10, 0 -> 0 # note this case
25, 17 -> 7
Giải thích
Thử thách này có thể khó đối với những người chơi không phải Minecraft, tôi không biết. Dưới đây là một số giải thích.
64, 8 -> 5
bởi vì bạn chọn 32 bằng cách nhấp chuột phải, đặt nó xuống, chọn 16, đặt nó xuống, sau đó chọn 8.
63, 8 -> 5
cho cùng một lý do.
25, 17 -> 7
bởi vì bạn nhặt 13, đặt nó xuống, nhặt 6 từ 12 còn lại, đặt 2 trở lại vào ngăn xếp còn lại, sau đó đặt 4 trong con trỏ vào 13, sau đó chọn chúng.
Quy tắc
- Áp dụng sơ hở tiêu chuẩn
- Bạn có thể cho rằng
0 <= desired <= given <= 64
- Bạn có thể nhận đầu vào theo thứ tự và thực hiện I / O ở bất kỳ định dạng hợp lý nào
0,[n]
, có thể chuyển tiếp: (1) từ 0,[a,b,...]
đến a,[b,...]
, b,[a,...]
, ceil(a/2),[floor(a/2),b,...]
, hoặc ceil(b/2),[a,floor(b/2),...]
; hoặc (2) từ x,[a,b,...]
( x>0
) để x-1,[a+1,b,...]
, x-1,[a,b+1,...]
, x-1,[a,b,...,1]
, 0,[a+x,b,...]
, 0,[a,b+x,...]
, 0,[a,b,...,x]
. Thử thách sau đó là tìm ra các chuyển đổi tối thiểu có thể có từ 0,[g]
nơi g được đưa ra đến t,L
đâu t
là mục tiêu mong muốn và L
có danh sách nào không?