From a8c5c710a4fad8ae36ef93afb2d4ab9a937a7562 Mon Sep 17 00:00:00 2001 From: kbokis Date: Mon, 24 Mar 2025 00:39:07 +0200 Subject: [PATCH] =?UTF-8?q?=CE=94=CE=B9=CE=BF=CF=81=CE=B8=CF=8E=CF=83?= =?UTF-8?q?=CE=B5=CE=B9=CF=82=20=CE=BB=CE=AD=CE=BE=CE=B5=CF=89=CE=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contests/_37-PDP/b-shroompath-solution.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/contests/_37-PDP/b-shroompath-solution.md b/contests/_37-PDP/b-shroompath-solution.md index 40fc5566..5295fb28 100755 --- a/contests/_37-PDP/b-shroompath-solution.md +++ b/contests/_37-PDP/b-shroompath-solution.md @@ -33,7 +33,7 @@ $$A = \lceil S/X \rceil, B = \lceil S/Y \rceil$$. πρώτος συνδυασμός συμβολοσειρών μήκους $$S$$ αποτελείται από $$S$$ **α** και ο τελευταίος από $$S$$ **β**. Μάλιστα αν τα $$X$$ και $$Y$$ είναι μεγαλύτερα από $$1$$, θα καταφέρουμε να συγκεντρώσουμε βάρος $$S$$ ακόμα πιο γρήγορα. -Ακολουθούν δύο τρόποι για να υπολογίσουμε όλους τους συνδυασμούς, με αναδρομή και με βρόγχο. +Ακολουθούν δύο τρόποι για να υπολογίσουμε όλους τους συνδυασμούς, με αναδρομή και με επαναληπτικό βρόχο. **Αναδρομικά:** Βρίσκουμε όλους τους συνδυασμούς για κάθε μήκος συμβολοσειράς και τους προσθέσουμε σε έναν πίνακα χαρακτήρων ``Z``. @@ -50,17 +50,17 @@ $$A = \lceil S/X \rceil, B = \lceil S/Y \rceil$$. $$2$$ τιμές). Τα **α** και **β** μπορούν να θεωρηθούν ως οι αριθμοί $$0$$ και $$1$$ του δυαδικού συστήματος και η παραγόμενη συμβολοσειρά να είναι η αλληλουχία όλων των μη μηδενικών φυσικών αριθμών απεικονισμένων στο δυαδικό σύστημα. -**Με βρόγχο:** Χρησιμοποιώντας την *παρατήρηση 2*, μπορούμε να κατασκευάσουμε τις συμβολοσειρές με ένα βρόγχο ως εξής: +**Με επαναληπτικό βρόχο:** Χρησιμοποιώντας την *παρατήρηση 2*, μπορούμε να κατασκευάσουμε τις συμβολοσειρές με έναν επαναληπτικό βρόχο ως εξής: {% include code.md solution_name='shroom_brute2.cc' start=10 end=14 %} Μπορείτε να βρείτε ολόκληρο τον κώδικα [εδώ]({% include link_to_source.md solution_name='shroom_brute2.cc' %}). -Η λύση με αναδρομή ή βρόγχο, χρειάζεται $$\mathcal{O}(S\cdot 2^S)$$ χρόνο. +Η λύση με αναδρομή ή επαναληπτικό βρόχο, χρειάζεται $$\mathcal{O}(S\cdot 2^S)$$ χρόνο. ## Υποπρόβλημα 2 ($$ Χ\gt Y $$) Εφόσον οι χαρακτήρες τύπου **α** έχουν μεγαλύτερο βάρος, θα προλάβουμε να συγκεντρώσουμε το συνολικό βάρος $$S$$ με αυτά. -Τα μανιτάρια **β** δεν θα μας χρησιμεύσουν. +Οι χαρακτήρες **β** δεν θα μας χρησιμεύσουν. **Παρατήρηση 3:** Για οποιοδήποτε μήκος $$w$$ συμβολοσειρών με $$w\gt 1$$, η πρώτη συμβολοσειρά αποτελείται από $$w$$ **α** και η επόμενη από $$w-1$$ **α** και ένα **β**. Σε καμία άλλη θέση δεν έχουμε τόσα **α** συγκεντρωμένα. @@ -109,8 +109,8 @@ $$2$$ τιμές). Τα **α** και **β** μπορούν να θεωρηθο {% include code.md solution_name='shroom_solution1.cc' start=7 end=17 %} Ολόκληρος ο κώδικας [εδώ]({% include link_to_source.md solution_name='shroom_solution1.cc' %}). -Αν όμως αξιοποιήσουμε την πληροφορία ότι τα $$B$$ μανιτάρια τύπου **β** τα συναντάμε στις συμβολοσειρές μήκους $$B$$, είναι -φανερό ότι μέχρι και $$2\cdot B-1$$ μανιτάρια τύπου **α** τα βρίσκουμε νωρίτερα από τα $$B$$ **β**. +Αν όμως αξιοποιήσουμε την πληροφορία ότι τους $$B$$ χαρακτήρες **β** τους συναντάμε στις συμβολοσειρές μήκους $$B$$, είναι +φανερό ότι μέχρι και $$2\cdot B-1$$ χαρακτήρες **α**, τους βρίσκουμε νωρίτερα από τους $$B$$ **β**.
Όλοι οι συνδυασμοί @@ -126,7 +126,7 @@ $$2$$ τιμές). Τα **α** και **β** μπορούν να θεωρηθο Ο αριθμός των χαρακτήρων από όλους τους συνδυασμούς ενός μόνο πλάτους $$k$$, δίνεται από τη συνάρτηση -$$f(k) = 2^k \cdot k$$. Ο υπολογισμός του συνόλου των μανιταριών μέχρι και το πλάτος $$k$$, δίνεται από +$$f(k) = 2^k \cdot k$$. Ο υπολογισμός του συνόλου των χαρακτήρων μέχρι και το πλάτος $$k$$, δίνεται από τη συνάρτηση $$p(k) = f(1)+f(2)+\dots+f(k)=\sum_{i=1}^{k}f(i) = \sum_{i=1}^{k} {i\cdot 2^i}$$.
Η συνάρτηση αυτή μπορεί να υπολογισθεί με $$p(k) = 2^{k+1}\cdot (k-1)+2$$