67 lines
3.6 KiB
Markdown
67 lines
3.6 KiB
Markdown
![]() |
---
|
|||
|
id: 5900f51f1000cf542c510031
|
|||
|
title: 'Завдання 434: Незмінні графіки'
|
|||
|
challengeType: 5
|
|||
|
forumTopicId: 302105
|
|||
|
dashedName: problem-434-rigid-graphs
|
|||
|
---
|
|||
|
|
|||
|
# --description--
|
|||
|
|
|||
|
Нагадаємо, що графік це набір вершин та кутів, які їх з'єднують. Дві вершини, з'єднані кутом, називаються прилеглими.
|
|||
|
|
|||
|
Графіки можуть бути вбудовані в Евклідів простір через спрягання кожної вершини з точкою в Евклідовому просторі.
|
|||
|
|
|||
|
Гнучким називають графік, в якому можна постійно рухати однією або й більше вершинами таким чином, щоб відстань між принаймні двома несуміжними вершинами змінювалась, в той час як дистанція між кожною парою суміжних вершин постійно залишалась без змін.
|
|||
|
|
|||
|
Незмінним називають графік, який не являється гнучким.
|
|||
|
|
|||
|
Неформально графік є стійким, якщо, замінивши вершини повністю обертовими петлями, а ребра стержнями, які є еластичними та не розгинаються, жодна частина графіка не може бути переміщена незалежно від решти графіка.
|
|||
|
|
|||
|
Табличні графіки, які вбудовані в евклідову площину, не є незмінними, як показує наступний рисунок:
|
|||
|
|
|||
|
<img class="img-responsive center-block" alt="рисунок, який показує, що табличні графіки, не є незмінними в евклідовій площині" src="https://cdn.freecodecamp.org/curriculum/project-euler/rigid-graphs-1.gif" style="background-color: white; padding: 10px;" />
|
|||
|
|
|||
|
Однак їх можна зробити незмінними, додавши діагональні краї до комірок. Наприклад, для табличного графіка 2х3 існує 19 способів зробити графік незмінним:
|
|||
|
|
|||
|
<img class="img-responsive center-block" alt="19 способів зробити графік таблиці 2х3 незмінним" src="https://cdn.freecodecamp.org/curriculum/project-euler/rigid-graphs-2.png" style="background-color: white; padding: 10px;" />
|
|||
|
|
|||
|
Зверніть увагу, що для цілей цього завдання ми не розглядаємо зміну орієнтації діагонального ребра або додавання обох діагональних ребер до комірки як інший спосіб зробити незмінний табличний графік.
|
|||
|
|
|||
|
Нехай $R(m, n)$ буде кількістю способів створити табличний незмінний графік $m × n$.
|
|||
|
|
|||
|
Наприклад: $R(2, 3) = 19$ та$R(5, 5) = 23\\,679\\,901$.
|
|||
|
|
|||
|
Визначимо $S(N)$ як $\суму R(i, j)$ для $1 ≤ i$, $j ≤ N$.
|
|||
|
|
|||
|
Наприклад: $S(5) = 25\\,021\\,721$.
|
|||
|
|
|||
|
Знайдіть $S(100)$, дайте відповідь модулем $1\\,000\\,000\\,033$.
|
|||
|
|
|||
|
# --hints--
|
|||
|
|
|||
|
`rigidGraphs()` має видати `863253606`.
|
|||
|
|
|||
|
```js
|
|||
|
assert.strictEqual(rigidGraphs(), 863253606);
|
|||
|
```
|
|||
|
|
|||
|
# --seed--
|
|||
|
|
|||
|
## --seed-contents--
|
|||
|
|
|||
|
```js
|
|||
|
function rigidGraphs() {
|
|||
|
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
rigidGraphs();
|
|||
|
```
|
|||
|
|
|||
|
# --solutions--
|
|||
|
|
|||
|
```js
|
|||
|
// solution required
|
|||
|
```
|