Skip to content

Commit

Permalink
Replies to comments
Browse files Browse the repository at this point in the history
  • Loading branch information
Dim131 committed May 5, 2024
1 parent d4963f2 commit 3394618
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 11 deletions.
4 changes: 2 additions & 2 deletions contests/_34-PDP/camp_c-lights-statement.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ codename: lights

Έστω $$N$$ λαμπτήρες, τοποθετημένοι στη σειρά ο ένας δίπλα στον άλλο και αριθμημένοι από το $$1$$ μέχρι το $$N$$. Κάποιοι από αυτούς τους λαμπτήρες είναι αρχικά αναμμένοι και οι υπόλοιποι σβηστοί. Ο σκοπός μας είναι να σβήσουμε όλους τους λαμπτήρες (ξέρετε πόσο έχει ακριβύνει το ρεύμα τελευταία), αυτό όμως θα φανεί κάπως δύσκολο γιατί δεν ξέρουμε ποιοι ακριβώς είναι αναμμένοι.

Το πρόβλημα αυτό είναι διαφορετικό και μπορείτε να το φανταστείτε σαν ένα παιχνίδι πολλών ανεξάρτητων γύρων, σε καθέναν από τους οποίους πρέπει να βρείτε τον τρόπο να σβήσετε όλους τους λαμπτήρες κάνοντας μία κατάλληλη σειρά κινήσεων το πλήθος των οποίων δεν πρέπει να υπερβαίνει κάποιο δοθέντα αριθμό $$Q$$. Ο κώδικας που θα γράψετε πρέπει να καλεί τις συναρτήσεις με τις παρακάτω επικεφαλίδες, που θα βρίσκονται στο ``#include "lightslib.h"``:
Το πρόβλημα αυτό είναι διαφορετικό και μπορείτε να το φανταστείτε σαν ένα παιχνίδι πολλών ανεξάρτητων γύρων, σε καθέναν από τους οποίους πρέπει να βρείτε τον τρόπο να σβήσετε όλους τους λαμπτήρες κάνοντας μία κατάλληλη σειρά κινήσεων, το πλήθος των οποίων δεν πρέπει να υπερβαίνει κάποιο δοθέντα αριθμό $$Q$$. Ο κώδικας που θα γράψετε πρέπει να καλεί τις συναρτήσεις με τις παρακάτω επικεφαλίδες, που θα βρίσκονται στο ``#include "lightslib.h"``:

```c++
pair<int, int> getNQ();
Expand Down Expand Up @@ -34,7 +34,7 @@ bool finish();
## Περιορισμοί
Το πλήθος των γύρων δε θα υπερβαίνει το $$10$$
- Το πλήθος των γύρων δε θα υπερβαίνει το $$10$$.
- Το πλήθος των λαμπτήρων σε κάθε γύρο θα είναι $$1 \leq N \leq 100.000$$.
- Θεωρήστε ότι οι απαντήσεις των τριών συναρτήσεων μπορεί να εξαρτώνται από τη σειρά των κινήσεων που κάνετε (ο βαθμολογητής είναι προσαρμοστικός / adaptive).
- Αν παραβιάσετε το πρωτόκολλο επικοινωνίας, το πρόγραμμά σας θα τερματιστεί και θα θεωρηθεί ότι απέτυχε η περίπτωση ελέγχου. Ενδεικτικά και χάριν παραδείγματος, τα παρακάτω θεωρούνται παραβιάσεις του πρωτοκόλλου επικοινωνίας:
Expand Down
2 changes: 1 addition & 1 deletion contests/_34-PDP/camp_c-police-statement.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ codename: police
Κατά καιρούς έχουν υπάρξει πολλές κλοπές και άλλα περιστατικά στα πανεπιστήμια, με αποτέλεσμα η κοινωνία να θέλει να αυξήσει την φύλαξη σε αυτούς τους χώρους. Για τον λόγο αυτό, η κυβέρνηση αποφάσισε να ιδρύσει την Πανεπιστημιακή Αστυνομία. Ωστόσο, πολλά μέλη της ακαδημαϊκής κοινότητας, αν και συμφωνούν ότι οι χώροι πρέπει να φυλάσσονται, πιστεύουν ότι η λύση που επέλεξε η κυβέρνηση δεν είναι η πλέον κατάλληλη. Λίγες μέρες πριν την έλευση της αστυνομίας στην Πολυτεχνειούπολη, αναλαμβάνετε τον δύσκολο ρόλο να γεφυρώσετε τις διαφορές των δύο πλευρών. Σας ζητείται να γράψετε έναν αλγόριθμο ο οποίος θα ελαχιστοποιεί την αστυνομική παρουσία στο ΕΜΠ αλλά ταυτόχρονα θα το διατηρεί "ασφαλές".


Ο περιφερειακός κυκλικός, δρόμος της Πολυτεχνειούπολης έχει $$N$$ φυλάκια σε συγκεκριμένες θέσεις, αριθμημένα από το $$1$$ έως το $$N$$. Λόγω της γεωμετρίας του δρόμου, αν κάποιος αστυνομικός τοποθετηθεί στο $$i$$-οστό φυλάκιο, μπορεί να βλέει το δικό του και τα $$k_i - 1$$ επόμενα φυλάκια κατά την ωρολογιακή φορά.
Ο περιφερειακός κυκλικός, δρόμος της Πολυτεχνειούπολης έχει $$N$$ φυλάκια σε συγκεκριμένες θέσεις, αριθμημένα από το $$1$$ έως το $$N$$. Λόγω της γεωμετρίας του δρόμου, αν κάποιος αστυνομικός τοποθετηθεί στο $$i$$-οστό φυλάκιο, μπορεί να βλέπει το δικό του και τα $$k_i - 1$$ επόμενα φυλάκια κατά την ωρολογιακή φορά.

Καλείστε να υπολογίσετε τον ελάχιστο αριθμό αστυνομικών που πρέπει να τοποθετηθούν σε φυλάκια έτσι ώστε όλα τα φυλάκια να επιβλέπονται από κάποιον αστυνομικό.

Expand Down
2 changes: 1 addition & 1 deletion contests/_34-PDP/camp_c-prettytree-statement.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ codename: prettytree

Συνεπώς ένα όμορφο δέντρο μεγέθους $$N$$ μπορεί να κατασκευαστεί με τον εξής τρόπο. Ξεκινάμε έχοντας $$N$$ μεμονομένους κόμβους, που εξ ορισμού είναι όμορφα δέντρα. Επαναλαμβάνουμε το παρακάτω βήμα $$N-1$$ φορές: επιλέγουμε δύο διαφορετικά όμορφα δέντρα $$T_1$$, $$T_2$$ από αυτά που έχουμε, τέτοια ώστε $$\mathrm{size}(T_1) \geq \mathrm{size}(T_2)$$, προσθέτουμε μία ακμή ώστε ο κόμβος $$\mathrm{root}(T_1)$$ να γίνει πατέρας του κόμβου $$\mathrm{root}(T_2)$$, και έτσι φτιάχνουμε ένα νέο όμορφο δέντρο.

Το πρόβλημα αυτό έχει δύο εκδοχές. Στην πρώτη εκδοχή μας δίνεται ένα ριζωμένο δέντρο και μας ζητείται να αποφανθούμε αν είναι όμορφο ή όχι. Στη δεύτερη εκδοχή μάς δίνεται ένα ριζωμένο δέντρο και μας ζητείται να μετρήσουμε με πόσους διαφορετικούς τρόπους μπορεί να κατασκευαστεί σύμφωνα με τη διαδικασία που περιγράφηκε παραπάνω (δηλαδή με πόσες διαφορετικές σειρές μπορούν να προστεθούν οι ακμές του). Αν το δέντρο δεν είναι όμορφο, προφανώς δεν μπορεί να κατασκευαστεί με κανέναν τρόπο και άρα η απάντηση πρέπει να είναι 0 &mdash; η δεύτερη εκδοχή του προβλήματος είναι γενίκευση της πρώτης.
Το πρόβλημα αυτό έχει δύο εκδοχές. Στην πρώτη εκδοχή μας δίνεται ένα ριζωμένο δέντρο και μας ζητείται να αποφανθούμε αν είναι όμορφο ή όχι. Στη δεύτερη εκδοχή μάς δίνεται ένα ριζωμένο δέντρο και μας ζητείται να μετρήσουμε με πόσους διαφορετικούς τρόπους μπορεί να κατασκευαστεί σύμφωνα με τη διαδικασία που περιγράφηκε παραπάνω (δηλαδή με πόσες διαφορετικές σειρές μπορούν να προστεθούν οι ακμές του). Αν το δέντρο δεν είναι όμορφο, προφανώς δεν μπορεί να κατασκευαστεί με κανέναν τρόπο και άρα η απάντηση πρέπει να είναι $$0$$ &mdash; η δεύτερη εκδοχή του προβλήματος είναι γενίκευση της πρώτης.

## Δεδομένα εισόδου (prettytree.in)

Expand Down
14 changes: 7 additions & 7 deletions contests/_34-PDP/camp_c-vatraxia-statement.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ codename: vatraxia
- $\texttt{0 p x}$
- $\texttt{1 p}$

Στην μορφή 0, οι επιστήμονες αλλάζουν το νούφαρο στην θέση $$p$$ με ένα άλλο ελαστικότητας $$x$$. Δηλαδή θέτουν $$a_p = x$$. Στην μορφή 1, αφήνουν ένα βατράχι στο νούφαρο $$p$$ και μετράνε το πλήθος των αλμάτων που αυτό κάνει μέχρι να φτάσει στο σημείο διάσωσης καθώς και το νούφαρο από το οπίο έγινε το τελευταίο άλμα.
Στην μορφή $$0$$, οι επιστήμονες αλλάζουν το νούφαρο στην θέση $$p$$ με ένα άλλο ελαστικότητας $$x$$. Δηλαδή θέτουν $$a_p = x$$. Στην μορφή 1, αφήνουν ένα βατράχι στο νούφαρο $$p$$ και μετράνε το πλήθος των αλμάτων που αυτό κάνει μέχρι να φτάσει στο σημείο διάσωσης καθώς και το νούφαρο από το οπίο έγινε το τελευταίο άλμα.

Η ομάδα δοκιμών του εργαστηρίου αναθέτει σε εσάς την δουλειά να κατασκευάσετε μία προσομοίωση αυτής της διαδικασίας. Συγκεκριμένα, σας δίνονται οι αρχικές ελαστικότητες για να $$N$$ νούφαρα καθώς και τα $$Q$$ πειράματα που εκτελούνται. Στόχος σας είναι να εκτελέσετε επιτυχώς όλα τα $$Q$$ πειράματα, και για κάθε πείραμα μορφής $$1$$ να τυπώσετε το τελευταίο νούφαρο από το οποίο περνάει το βατράχι, καθώς και τον συνολικό αριθμό αλμάτων που κάνει.

Expand All @@ -20,18 +20,18 @@ codename: vatraxia

## Δεδομένα εξόδου (vatraxia.out)

Η έξοδος θα πρέπει να περιέχει τόσες γραμμές όσα είναι συνολικά τα πειράματα τύπου 1. Κάθε γραμμή θα περιέχει δύο αριθμούς που δηλώνουν το νούφαρο από το οποίο έγινε το τελευταίο άλμα καθώς και το πλήθος αλμάτων μέχρι το βατράχι στο αντίστοιχο πείραμα 1 να φτάσει στο σημείο διάσωσης.
Η έξοδος θα πρέπει να περιέχει τόσες γραμμές όσα είναι συνολικά τα πειράματα τύπου $$1$$. Κάθε γραμμή θα περιέχει δύο αριθμούς που δηλώνουν το νούφαρο από το οποίο έγινε το τελευταίο άλμα καθώς και το πλήθος αλμάτων μέχρι το βατράχι στο αντίστοιχο πείραμα $$1$$ να φτάσει στο σημείο διάσωσης.

## Παράδειγμα αρχείου εισόδου-εξόδου:

| **vatraxia.in** | **vatraxia.out** |
| :--- | :--- |
| 1<br>8 5<br>1 1 1 1 1 2 8 2<br>1 1<br>0 1 3<br>1 1<br>0 3 4<br>1 2 | 8 7<br>8 5<br>7 3 |

*Εξήγηση παραδείγματος:* Στο πρώτο και μοναδικό test case του παραδείγματος υπάρχουν 8 νούφαρα με αρχικές ελαστικότητες αυτές που φαίνονται στην 3η γραμμή. Γίνονται 5 πειράματα.
- Στο 1ο πείραμα αφήνουμε ένα βατράχι στο νούφαρο 1. Αυτό το βατράχι ακολουθεί την διαδρομή $$(1, 2, 3, 4, 5, 6, 8)$$ προτού φτάσει στο σημείο διάσωσης. Άρα η 1η γραμμή εξόδου περιέχει το $$8$$ που είναι το τελευταίο νούφαρο από το οποίο διέρχεται, και το $$7$$ που είναι το πλήθος των αλμάτων που έκανε.
- Στο 2ο πείραμα (που είναι της μορφής 0) αλλάζουμε την ελαστικότητα στο νούφαρο $$1$$ στην τιμή $$3$$.
- Στο 3ο πείραμα αφήνουμε πάλι ένα βατράχι στο νούφαρο $$1$$. Αυτή την φορά το νούφαρο $$1$$ έχει ελαστικότητα $$3$$ αντί για 1, οπότε η διαδρομή που ακολουθεί το βατράχι είναι $$(1, 4, 5, 6, 8)$$. Πάλι το τελευταίο νούφαρο είναι το $$8$$, αλλά τώρα χρειάστηκαν συνολικά $$5$$ άλματα. Για αυτό τυπώνουμε $$\texttt{8 5}$$ στην δεύτερη γραμμή εξόδου.
*Εξήγηση παραδείγματος:* Στο πρώτο και μοναδικό test case του παραδείγματος υπάρχουν $$8$$ νούφαρα με αρχικές ελαστικότητες αυτές που φαίνονται στην 3η γραμμή. Γίνονται $$5$$ πειράματα.
- Στο 1ο πείραμα αφήνουμε ένα βατράχι στο νούφαρο $$1$$. Αυτό το βατράχι ακολουθεί την διαδρομή $$(1, 2, 3, 4, 5, 6, 8)$$ προτού φτάσει στο σημείο διάσωσης. Άρα η 1η γραμμή εξόδου περιέχει το $$8$$ που είναι το τελευταίο νούφαρο από το οποίο διέρχεται, και το $$7$$ που είναι το πλήθος των αλμάτων που έκανε.
- Στο 2ο πείραμα (που είναι της μορφής $$0$$) αλλάζουμε την ελαστικότητα στο νούφαρο $$1$$ στην τιμή $$3$$.
- Στο 3ο πείραμα αφήνουμε πάλι ένα βατράχι στο νούφαρο $$1$$. Αυτή την φορά το νούφαρο $$1$$ έχει ελαστικότητα $$3$$ αντί για $$1$$, οπότε η διαδρομή που ακολουθεί το βατράχι είναι $$(1, 4, 5, 6, 8)$$. Πάλι το τελευταίο νούφαρο είναι το $$8$$, αλλά τώρα χρειάστηκαν συνολικά $$5$$ άλματα. Για αυτό τυπώνουμε $$\texttt{8 5}$$ στην δεύτερη γραμμή εξόδου.
- Στο 4ο πείραμα αλλάζουμε την ελαστικότητα στο νούφαρο $$3$$ σε τιμή $$4$$.
- Στο 5ο πείραμα αφήνουμε ένα βατράχι στο νούφαρο $$2$$. Αυτό ακολουθεί την διαδρομή $$(2, 3, 7)$$, οπότε χρειάζεται $$3$$ άλματα και το τελευταίο νούφαρο από το οποίο διέρχεται είναι το $$7$$. Άρα τυπώνουμε $$\texttt{7 3}$$ στην τελευταία γραμμή εξόδου.

Expand All @@ -45,7 +45,7 @@ codename: vatraxia
## Subtasks

- Για περιπτώσεις ελέγχου συνολικής αξίας 20%, θα είναι $$1 \leq N \leq 1.000$$, $$1 \leq Q \leq 1.000$$ και το συνολικό άθροισμα των $$N$$ σε κάθε αρχείο δεν θα υπερβαίνει το $$2.000$$. Όμοια για το $$Q$$.
- Για περιπτώσεις ελέγχου συνολικής αξίας 20%, θα ισχύουν οι αρχικοί περιορισμοί και επιπλέον θα υπάρχουν μόνο πειράματα τύπου 1 στην είσοδο.
- Για περιπτώσεις ελέγχου συνολικής αξίας 20%, θα ισχύουν οι αρχικοί περιορισμοί και επιπλέον θα υπάρχουν μόνο πειράματα τύπου $$1$$ στην είσοδο.

**Μέγιστος χρόνος εκτέλεσης**: $$1$$ sec.<br>
**Μέγιστη διαθέσιμη μνήμη**: $$64$$ MB.

0 comments on commit 3394618

Please sign in to comment.