QOJ.ac

QOJ

時間限制: 10 s 記憶體限制: 512 MB 總分: 100 难度: [顯示] 可 Hack ✓

#1222. Polígono

统计

久莲 es una chica a la que le gusta crear problemas.

Después de la World Final de este año, 久莲 se ha aficionado especialmente a la geometría computacional. Por eso ha decidido proponer también un problema de geometría computacional en la NOI: un problema cuyo único vínculo con la geometría computacional es su nombre.

Primero, 久莲 da un árbol enraizado $T$ de $n$ nodos ($n\ge2$), cuya raíz es el nodo $1$. Se define como hojas a todos los nodos de grado exactamente $1$, excepto la raíz. La siguiente figura muestra un ejemplo de árbol $T$, cuyo conjunto de hojas es $\{3,4,5\}$.

problem_1222_92cb4702a7ea1260f223bee0a2f5771e.png

A continuación, 久莲 construye una secuencia $A$ a partir del árbol:

  • Recorre todo el árbol en profundidad desde la raíz, visitando los hijos en orden creciente de sus números. Así obtiene un orden DFS del árbol $T$.
  • Después, coloca todas las hojas en una fila, según su orden de aparición en el recorrido DFS, para obtener la secuencia $A$.

Mediante $A$, 久莲 define además la distancia $d(u,v)$ entre dos hojas $u,v$: si $u$ es el elemento $i$ de $A$ y $v$ es el elemento $j$, entonces $d(u,v)=\min(|i-j|,|A|-|i-j|)$. Aquí, $|A|$ es la longitud de la secuencia, es decir, el número de hojas de $T$; $i,j$ son las posiciones de aparición, numeradas desde $1$.

En el ejemplo anterior, $A=[4,5,3]$ y $d(3,5)=d(3,4)=d(4,5)=1$. Las posiciones de $3,4,5$ son respectivamente $3,1,2$.

Finalmente, 久莲 da un parámetro $K$. Con el árbol enraizado $T$ y la secuencia $A$, construimos un grafo no dirigido $G$ de $n$ vértices, sin aristas múltiples ni bucles: dos vértices distintos $u,v$ están unidos por una arista si y solo si cumplen al menos una de las condiciones siguientes:

  • Existe una arista entre $u,v$ en el árbol $T$.
  • $u,v$ son ambos hojas de $T$ y $d(u,v)\le K$.

Tanto para $K=1$ como para $K=2$, el grafo $G$ obtenido del ejemplo anterior es el de la siguiente figura:

problem_1222_afa38b1e77f5a99fe0c80f5f7972117d.png

Ahora 久莲 quiere que calcules cuántos ciclos hamiltonianos distintos hay en $G$. Como la respuesta puede ser muy grande, escribe su valor módulo $998244353$.

A continuación se dan algunas definiciones adicionales:

  • Un ciclo hamiltoniano $H$ de un grafo no dirigido $G$ sin aristas múltiples ni bucles es un subconjunto de las aristas de $G$ en el que cada vértice tiene exactamente dos aristas incidentes distintas pertenecientes a $H$, y desde cualquier vértice se puede llegar a cualquier otro, directa o indirectamente, por aristas de $H$.
  • Dos ciclos hamiltonianos $H_1,H_2$ de un grafo no dirigido $G$ sin aristas múltiples ni bucles son distintos si y solo si existe una arista $e$ que pertenece a $H_1$ y no pertenece a $H_2$.

Entrada

Los datos se leen del archivo polygon.in.

La primera línea contiene dos enteros $n,K$, que indican el número de vértices de $T$ y el parámetro $K$ elegido por 久莲.

La segunda línea contiene $n-1$ enteros $f_i$ ($1\le f_i\le i$), donde $f_i$ indica que el árbol $T$ tiene una arista $(f_i,i+1)$.

Salida

Escribe la salida en el archivo polygon.out.

Escribe una línea con un entero: el número de ciclos hamiltonianos, módulo $998244353$.

Ejemplos

Entrada 1

5 1
1 1 2 2

Salida 1

2

Nota

Este ejemplo coincide exactamente con el de la descripción. Los dos ciclos hamiltonianos recorren los nodos en los órdenes $(1,2,4,5,3)$ y $(1,2,5,4,3)$.

Subtareas

La siguiente tabla muestra los tamaños y las propiedades de los datos de cada punto de prueba:

Número $n$ $K$ Propiedad especial Número $n$ $K$ Propiedad especial
1 $\le5$ $\le3$ Ninguna 11 $\le1000$ $\le2$ A
2 $\le10$ $\le3$ Ninguna 12 $\le1000$ $\le2$ A
3 $\le15$ $\le3$ Ninguna 13 $\le1000$ $\le2$ A
4 $\le20$ $\le3$ Ninguna 14 $\le1000$ $\le2$ Ninguna
5 $\le1000$ $=1$ A 15 $\le1000$ $\le2$ Ninguna
6 $\le1000$ $=1$ A 16 $\le1000$ $\le2$ Ninguna
7 $\le1000$ $=1$ A 17 $\le1000$ $\le3$ A
8 $\le1000$ $=1$ Ninguna 18 $\le1000$ $\le3$ A
9 $\le1000$ $=1$ Ninguna 19 $\le1000$ $\le3$ Ninguna
10 $\le1000$ $=1$ Ninguna 20 $\le1000$ $\le3$ Ninguna

La propiedad A garantiza que todos los nodos del árbol tienen como máximo dos hijos.

Para todos los datos, se garantiza que $1\le f_i\le i$ y $2\le n\le1000$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.