72 lines
2.4 KiB
Markdown
72 lines
2.4 KiB
Markdown
![]() |
---
|
|||
|
id: 5
|
|||
|
localeTitle: 5900f51f1000cf542c510031
|
|||
|
challengeType: 5
|
|||
|
title: 'Problem 434: Rigid graphs'
|
|||
|
---
|
|||
|
|
|||
|
## Description
|
|||
|
<section id='description'>
|
|||
|
Recuerde que una gráfica es una colección de vértices y bordes que conectan los vértices, y que dos vértices conectados por un borde se denominan adyacentes.
|
|||
|
gráficas se pueden incrustar en el espacio euclidiano al asociar cada vértice con un punto en el espacio euclidiano.
|
|||
|
Un gráfico flexible es una incrustación de un gráfico en el que es posible mover uno o más vértices de manera continua, de modo que la distancia entre al menos dos vértices no adyacentes se altera mientras las distancias entre cada par de vértices adyacentes se mantienen constantes.
|
|||
|
Un gráfico rígido es una incrustación de un gráfico que no es flexible.
|
|||
|
Informalmente, una gráfica es rígida si al reemplazar los vértices con bisagras totalmente giratorias y los bordes con varillas que son inflexibles e inelásticos, ninguna parte de la gráfica se puede mover independientemente del resto de la gráfica.
|
|||
|
|
|||
|
Los gráficos de cuadrícula incrustados en el plano euclidiano no son rígidos, como lo demuestra la siguiente animación:
|
|||
|
Sin embargo, se pueden hacer rígidos agregando bordes diagonales a las celdas. Por ejemplo, para el gráfico de cuadrícula de 2x3, hay 19 formas de hacer que el gráfico sea rígido:
|
|||
|
Tenga en cuenta que para los propósitos de este problema, no consideramos cambiar la orientación de un borde diagonal o agregar ambos bordes diagonales a una celda como un Diferente forma de hacer una cuadrícula gráfica rígida.
|
|||
|
|
|||
|
Sea R (m, n) el número de formas para hacer que la gráfica de la cuadrícula m × n sea rígida.
|
|||
|
Por ejemplo, R (2,3) = 19 y R (5,5) = 23679901
|
|||
|
|
|||
|
Defina S (N) como ∑R (i, j) para 1 ≤ i, j ≤ N.
|
|||
|
Por ejemplo, S (5) = 25021721.
|
|||
|
Encuentre S (100), dé su respuesta módulo 1000000033
|
|||
|
</section>
|
|||
|
|
|||
|
## Instructions
|
|||
|
<section id='instructions'>
|
|||
|
|
|||
|
</section>
|
|||
|
|
|||
|
## Tests
|
|||
|
<section id='tests'>
|
|||
|
|
|||
|
```yml
|
|||
|
tests:
|
|||
|
- text: <code>euler434()</code> debe devolver 863253606.
|
|||
|
testString: 'assert.strictEqual(euler434(), 863253606, "<code>euler434()</code> should return 863253606.");'
|
|||
|
|
|||
|
```
|
|||
|
|
|||
|
</section>
|
|||
|
|
|||
|
## Challenge Seed
|
|||
|
<section id='challengeSeed'>
|
|||
|
|
|||
|
<div id='js-seed'>
|
|||
|
|
|||
|
```js
|
|||
|
function euler434() {
|
|||
|
// Good luck!
|
|||
|
return true;
|
|||
|
}
|
|||
|
|
|||
|
euler434();
|
|||
|
```
|
|||
|
|
|||
|
</div>
|
|||
|
|
|||
|
|
|||
|
|
|||
|
</section>
|
|||
|
|
|||
|
## Solution
|
|||
|
<section id='solution'>
|
|||
|
|
|||
|
```js
|
|||
|
// solution required
|
|||
|
```
|
|||
|
</section>
|