Minecraft envanter yönetimi zordur. 17 elmasınız var, ama bir büyü masası, kazma ve kılıç yapmak için 7'ye ihtiyacınız var. Onları toplayıp 7 kez sağ tıklıyor musunuz? Yoksa bir kez sağ tıklayıp iki kez sağ tıklayıp 7 sola mı dönüyorsunuz? Çok kafa karıştırıcı!
şimdi şaşkın olanlarınız için endişelenmeyin, hepsini bir saniye içinde açıklayacağım
Meydan okuma
Bir öğe kümesinin boyutu ve istenen bir miktar göz önüne alındığında, bu tutarı elde etmek için en az tıklama sayısını belirleyin. Her iki giriş için yalnızca 64'e kadar işlem yapmanız yeterlidir ve sonsuz envanter alanınız olduğunu varsayabilirsiniz. Dağıtmak için sürükle numarasını kullanamazsınız.
Tanımlar
envanter öğeleri saklayabilir yuvaları topluluğudur.
Bir yuva öğenin bir tip kadar yerleştirebilirsiniz envanterinizdeki bir depolama alanıdır.
Bir yığın , aynı grupta yer öğelerin bir sayıdır. Bu zorluğun amaçları doğrultusunda, bir yığın aynı yerde bulunan bir grup öğedir (bu nedenle yığın boyutunu yok sayın)
kürsör sivri şeysi olduğunu. O imleç. "Üzerinde" öğeler olabilir; diğer bir deyişle, bir alanı tıklayıp öğeleri aldıysanız, aldığınız öğeler siz bırakana kadar "imleç" üzerindedir.
Özellikler
Dört olası durum vardır. İmlecinizde bir öğe var ya da yok, ya da sol tıklama ya da sağ tıklama.
İmlecinizde bir öğe yoksa ve bir yuvaya sol tıklarsanız, tüm yığını alırsınız.
İmlecinizde bir öğe yoksa ve bir yuvaya sağ tıklarsanız, yığının yarısını yuvarlanırsınız.
İmlecinizde bir öğe varsa ve bir yuvaya sol tıklarsanız, tüm öğeleri o yuvaya yerleştirirsiniz. (Tüm Minecraft oyuncularınız için, bu meydan okuma için 64 öğeden fazla olmayacaksınız ve bunların hepsi 64 istiflenebilir ve yalnızca bir türünüz var, bu yüzden öğe takası burada geçerli değil)
İmlecinizde bir öğe varsa ve bir yuvaya sağ tıklarsanız, o yuvaya bir öğe yerleştirirsiniz.
Böylece, bir yuvada verilen tüm öğelerle (ilk giriş veya ikinci; siparişi seçebilirsiniz) başlarsınız ve imlecinizde istenen miktarda (diğer giriş) bulunarak bitirmek istersiniz.
Bir örnek verelim. 17 öğe ile başladığınızı ve 7 istediğinizi söyleyin. İlk olarak, yığını sağ tıklıyorsunuz, yani 9'u aldınız ve bu yuvada 8 var. Daha sonra, yığını tekrar sağ tıklarsanız, bir öğeyi yuvaya geri yerleştirirsiniz, sizi 8 ve yuvayı 9 ile bırakırsınız. Son olarak, tekrar sağ tıklarsınız ve 7'ye sahip olursunuz ve yuvanın 10'u vardır. Böylece, dönersiniz 3(tıklama sayısı).
Eğer bana golf ile tıklamayı başarırsanız, lütfen bana söyleyin ve örneği düzenleyeceğim: P
Test Durumları
Bunlar manuel olarak oluşturulur, bu yüzden lütfen herhangi bir hata olup olmadığını bana bildirin. Ben envanter yönetimi sağ tıklama jitter tıklayarak tıklayarak yapmak böylece optimal stok yönetimi deneyimi yok: 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
açıklamalar
Bu zorluk Minecraft dışı oyuncular için zor olabilir, hiçbir fikrim yok. İşte bazı açıklamalar.
64, 8 -> 5 çünkü sağ tıklama ile 32 toplar, yerleştirir, 16 toplar, yerleştirir ve sonra 8 toplarsınız.
63, 8 -> 5 aynı sebepten.
25, 17 -> 7 çünkü 13'ü alırsınız, yere yerleştirirsiniz, kalan 12'den 6'yı alırsınız, 2'yi artık yığınına geri yerleştirirsiniz ve sonra 4'ü imlece 13'e yerleştirirsiniz ve sonra bunları toplarsınız.
kurallar
- Standart boşluklar geçerlidir
- Bunu varsayabilirsin
0 <= desired <= given <= 64 - Her iki sırayla girdi alabilir ve herhangi bir makul biçimde G / Ç yapabilirsiniz
0,[n], geçiş edilebilir: (1) ayrılması 0,[a,b,...]için a,[b,...], b,[a,...], ceil(a/2),[floor(a/2),b,...]ya da ceil(b/2),[a,floor(b/2),...]; ya da (2) ' x,[a,b,...]( x>0) için 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]. Bu durumda zorluk, 0,[g]g'nin verildiği t,Lyerden tistenen hedefin ve Lherhangi bir listenin nerede olabileceğine dair minimum geçişleri bulmaktır.