|
|
|
|
|
|
|
| 1 Хакимов Мухаммадазиз, 27 января 2026 г. 7:29:53 |
| import sys def solve(): data = sys.stdin.read().split() if not data: return R, C = map(int, data) # Если количество клеток нечетно, цикл невозможен if (R * C) % 2 != 0: print(0) return # Делаем так, чтобы C было меньшей стороной для оптимизации профиля if R < C: R, C = C, R # Состояние: кортеж (скобочная последовательность) # 0 - нет линии, 1 - левая скобка '(', 2 - правая скобка ')' dp = {(0,) * (C + 1): 1} for r in range(R): for c in range(C): new_dp = {} for state, count in dp.items(): left = state[c] # Линия слева up = state[c + 1] # Линия сверху # Варианты построения в зависимости от наличия входящих линий if left == 0 and up == 0: # Создаем новый "уголок" (новую связную пару) new_state = list(state) new_state[c], new_state[
|
|
|
| 2 Яндулов Богдан, 16 июля 2021 г. 8:34:31 |
| OeIs
|
|
|
| 3 Дмитрий Федоряка, 14 января 2018 г. 18:09:39 |
| Решить эту задачу поможет статья "Counting hamiltonian cycles in bipartite graphs", H. Haanpää, P. Östergård.
|
|
|
| 4 Тер-Саркисов Богдан Олегович, 10 октября 2017 г. 10:31:45 |
| Или можно использовать гамильтонов цикл
|
|
|
| 5 Гайнуллин Ильдар Ленарович, 28 августа 2016 г. 20:35:00 |
Это - гораздо сложнее чем симпатичные узоры, почему сложность меньше? Сложность увеличена.
|
|
|
Чтобы оставить сообщение необходимо зарегистрироваться и авторизоваться!
| | | |