CCO-26 (2026) - 5 (Tree Traversals)**
View as PDFTree Traversals
Ο Yevin Kang έχει ένα δέντρο με κορυφές, αριθμημένες από το
έως το
.
Ένα δέντρο είναι ένας μη κατευθυνόμενος, συνεκτικός γράφος που δεν περιέχει κύκλους.
Έστω ένας θετικός ακέραιος.
Ορίζουμε τη συνάρτηση
ως εξής.
Για οποιεσδήποτε δύο κορυφές , έστω
ο αριθμός των ακμών στο απλό μονοπάτι που συνδέει την κορυφή
με την κορυφή
. Ειδικότερα,
για κάθε
.
Μια μετάθεση των αριθμών
είναι καλή αν ικανοποιεί όλες τις ακόλουθες συνθήκες:
για όλα τα
.
για όλα τα ζεύγη ακεραίων
με
.
Τότε, η είναι το πλήθος των καλών μεταθέσεων.
Ο Yevin θεωρεί ότι αυτό το πρόβλημα είναι πολύ εύκολο, γι' αυτό σου δίνει θετικούς ακέραιους
. Σου ζητά να εκτυπώσεις τις τιμές
, modulo
.
Μπορεί επίσης να είναι χρήσιμο να σημειωθεί ότι το «mod» αντιστοιχεί στον τελεστή % στις περισσότερες γλώσσες προγραμματισμού και δηλώνει το υπόλοιπο της διαίρεσης. Για παράδειγμα, και
.
Είσοδος
Κάθε αρχείο περιέχει πολλαπλά αρχεία ελέγχου.
Η πρώτη γραμμή κάθε αρχείου θα περιέχει έναν ακέραιο (
) - το πλήθος των αρχείων ελέγχου.
Η πρώτη γραμμή κάθε αρχείου ελέγχου θα περιέχει δύο ακεραίους , χωρισμένους με κενό (
).
Καθεμία από τις επόμενες γραμμές περιέχει δύο ακεραίους
, χωρισμένους με κενό, που δηλώνουν ότι υπάρχει μια ακμή που συνδέει τις κορυφές
και
. Εγγυάται ότι οι
ακμές σχηματίζουν ένα δέντρο.
Η επόμενη γραμμή θα περιέχει ακεραίους
, που αντιστοιχούν στα ερωτήματα.
Είναι εγγυημένο ότι το άθροισμα των σε όλα τα αρχεία ελέγχου μιας δοκιμής, το οποίο συμβολίζεται με
, δεν υπερβαίνει το
.
Ο παρακάτω πίνακας δείχνει πώς κατανέμονται οι διαθέσιμοι βαθμοί:
| Βαθμοί | Όρια στο |
Όρια στο |
Όρια στα |
Έξοδος
Για κάθε test case, εκτυπώστε μία γραμμή με ακεραίους χωρισμένους με κενά - τις τιμές
, modulo
.
Παραδείγματα
input
2
3 3
1 2
1 3
1 2 3
6 3
1 2
1 3
3 4
3 5
3 6
1 2 3
output
0 2 2
0 6 12
Επεξήγηση του παραδείγματος
Τα δύο δέντρα της εισόδου του παραδείγματος φαίνονται παρακάτω.
1
/ \
2 3
1
/ \
2 3
/|\
4 5 6
Στο πρώτο test case, για ή
, τόσο η μετάθεση
όσο και η μετάθεση
είναι καλές.
Η μετάθεση δεν είναι καλή για καμία τιμή του
, επειδή η συνθήκη
παραβιάζεται:
.
Μπορεί να αποδειχθεί ότι δεν υπάρχει καλή μετάθεση για .
Στο δεύτερο test case, η μετάθεση είναι καλή για
, αλλά δεν είναι καλή για
, επειδή
.
Comments