EGOI-22 (2022) - Γύρος #1 - 2 (Lego)

View as PDF

Submit solution

Points: 45 (partial)
Time limit: 2.0s
Memory limit: 256M

Author:
Problem type
Allowed languages
C, C++, Java, Pascal, Python
Lego Wall

Υπάρχουν δύο τύποι από τουβλάκια lego που χαρακτηρίζονται από τις διαστάσεις τους: 1 \times 1 \times 1 και 2 \times 1 \times 1~ (πλάτος, ύψος και βάθος αντίστοιχα, όπως εμφανίζονται στη συνέχεια). Έχετε άπειρο απόθεμα από κάθε έναν τύπο από τέτοια τουβλάκια και τα τουβλάκια ίδιου τύπου είναι πανομοιότυπα.

egoi22a2-figure-1.svg

Ένα τουβλάκι lego τοποθετείται πάντα στην όρθια θέση. Όλες οι πλευρές τους είναι κατασκευασμένες από το ίδιο υλικό και είναι πανομοιότυπες, εκτός από τις διαστάσεις τους.

Θεωρούμε δύο τουβλάκια lego ότι είναι συνδεδεμένα αν το ένα βρίσκεται ακριβώς πάνω από το άλλο. Δύο τουβλάκια lego b_0 και b_k λέμε ότι είναι συνδεδεμένα αν υπάρχει μια σειρά από τουβλάκια b_0, b_1, \cdots, b_k τέτοια ώστε τα τουβλάκια b_{i - 1} και b_i να είναι συνδεδένα για κάθε i, τέτοιο ώστε 1 \le i \le k. Θεωρούμε μια διάταξη από τουβλάκια συνδεδεμένη εάν κάθε ζεύγος από τουβλάκια σε αυτή τη διάταξη, είναι συνδεδεμένο.

Θέλετε να χτίσετε ένα λεπτό ορθογώνιο τοίχο με πλάτος w και ύψος h (και βάθος 1) έτσι ώστε ο τοίχος να μην περιέχει κενά και η διάταξη των lego να είναι συνδεδεμένη. Σαν παράδειγμα, παρακάτω υπάρχει ένας τοίχος με τουβλάκια lego πλάτους 4 και ύψους 3:

egoi22a2-figure-2.svg

Από την άλλη πλευρά, ο ακόλουθος τοίχος 4 \times 3 δεν είναι συνδεδεμένος και επομένως δεν είναι επιθυμητός:

egoi22a2-figure-3.svg

Πόσοι τρόποι υπάρχουν για να χτιστεί ένας συνδεδεμένος τοίχος χωρίς κενά; Καθότι ο αριθμός αυτός μπορεί να είναι πολύ μεγάλος, τυπώστε το υπόλοιπο του με το 1/,000\,000\,007. Λάβετε υπόψη ότι η καθρεπτισμένη (περιστραμένη κατά 180 μοίρες) έκδοση ενός τοίχου lego θεωρείται διαφορετικός τοίχος, εκτός αν ο καθρεπτιζόμενος τοίχος είναι πανομοιότυπος με τον αρχικό.

Είσοδος

Η είσοδος αποτελείται από μια μόνο γραμμή που περιέχει δύο αριθμούς χωρισμένους με κενό, τους ακέραιους w και h (1 \le w \le 250\,000,\,2 \le h \le 250\,000,\,w \times h \le 500\,000) - το πλάτος και το ύψος του τοίχου αντίστοιχα.

Έξοδος

Τυπώστε έναν μοναδικό ακέραιο - το υπόλοιπο με το 1\,000\,000\,007 του αριθμού από συνδεδεμένους τοίχους χωρίς κενά, διαστάσεων w \times h.

Βαθμολόγηση
 Υποπρόβλημα    Βαθμοί   Περιορισμοί
1 14 w = 2
2 12 h = 2
3 18 w, h \le 100
4 30 w \le 700
5 20 h \le 700
6 6 Κανένας επιπλέον περιορισμός.
Παραδείγματα

input

2 2

output

3
Επεξήγηση του 1ου παραδείγματος:

Οι τρεις συνδεδεμένοι 2 \times 2 τοίχοι που μπορεί κανείς να χτίσει είναι:

egoi22a2-figure-4.svg

input

3 3

output

12

input

5 7

output

1436232

Comments

There are no comments at the moment.