--- id: 5900f51f1000cf542c510031 title: 'Problema 434: Grafos rígidos' challengeType: 5 forumTopicId: 302105 dashedName: problem-434-rigid-graphs --- # --description-- Lembre-se de que um grafo é uma coleção de vértices e bordas conectando os vértices, e que dois vértices conectados por uma aresta são chamados de adjacentes. Grafos podem ser incorporados no espaço euclideano associando cada vértice com um ponto nesse espaço. Um grafo flexível é uma incorporação de um grafo no qual é possível mover um ou mais vértices continuamente para que a distância entre pelo menos dois vértices não adjacentes seja alterada enquanto as distâncias entre cada par de vértices adjacentes seja mantida constante. Um grafo rígido é uma incorporação de um grafo que não é flexível. Informalmente, um grafo é rígido se, ao substituir os vértices por dobradiças de rotação completa e as arestas por hastes não elásticas e não curvas, nenhuma parte do grafo poderá se mover de modo independente do resto do grafo. Os grafos de grade incorporados no plano euclideano não são rígidos, como demonstra a animação a seguir: animação mostrando que os grafos de grade não são rígidos no plano euclideano No entanto, é possível torná-los rígidos adicionando arestas diagonais às células. Por exemplo, para o grafo de grade 2x3, há 19 maneiras de tornar o grafo rígido: 19 maneiras de tornar o grafo de grade 2x3 rígido Observe que, para fins deste problema, não consideramos a troca da orientação de uma aresta diagonal nem adicionar arestas diagonais a uma célula como uma forma diferente de fazer um grafo de grade rígido. Considere $R(m, n)$ como o número de maneiras de tornar um grafo de grade $m × n$ rígido. Ex: $R(2, 3) = 19$ e $R(5, 5) = 23.679.901$. Defina $S(N)$ como $\sum R(i, j)$ para $1 ≤ i$, $j ≤ N$. Ex: $S(5) = 25.021.721$. Encontre $S(100)$, dê sua resposta modulo $1.000.000.033$. # --hints-- `rigidGraphs()` deve retornar `863253606`. ```js assert.strictEqual(rigidGraphs(), 863253606); ``` # --seed-- ## --seed-contents-- ```js function rigidGraphs() { return true; } rigidGraphs(); ``` # --solutions-- ```js // solution required ```