QOJ.ac

QOJ

時間限制: 5 s 記憶體限制: 512 MB 總分: 100

#18823. Árbol y Consulta 20

统计

Hay un bosque con $N$ vértices. Los vértices están numerados del $1$ al $N$ y no hay aristas. Cada vértice $v$ tiene un entero $X_v$ cuyo valor inicial es $X_v = 1$.

Escriba un programa que realice las siguientes consultas.

  • 1 $a$ $b$ $c$: Conecta los vértices $a$ y $b$ con una arista de peso $c$. La entrada solo contiene casos en los que el resultado de la consulta es un bosque.
  • 2 $a$ $b$: Elimina la arista que conecta los vértices $a$ y $b$. La entrada solo contiene casos en los que existe una arista entre los dos vértices.
  • 3 $a$: Cambia $X_a$ a $1 - X_a$. Luego, en el árbol que contiene a $a$, calcula lo siguiente:
    • Sean $v_1, v_2, \dots, v_k$ los vértices del árbol. Calcula y muestra $\min_{1 \le i \le k}{\left\{ \sum_{1 \le j \le k}{dist(v_i, v_j) \times X_{v_j}} \right\}}$. $dist(v_i, v_j)$ es la suma de los pesos de todas las aristas en el camino de $v_i$ a $v_j$.

Entrada

La primera línea contiene el número de vértices $N$ y el número de consultas $Q$. Las siguientes $Q$ líneas contienen las consultas, una por línea.

Los números de vértice dados en las consultas (el $a$ y $b$ de las consultas 1 y 2, y el $a$ de la consulta 3) están cifrados y deben descifrarse antes de ejecutar la consulta. Si el número de vértice dado en la entrada es $x$ y el valor obtenido en la consulta 3 anterior es $S$, entonces el número de vértice descifrado es $(x - 1 + S) \bmod n + 1$.

Salida

Para cada consulta de tipo 3, muestra el valor calculado en una línea, en el orden en que aparecen las consultas en la entrada.

Restricciones

  • $1 \le N \le 10^5$
  • $1 \le Q \le 3 \times 10^5$
  • $1 \le a, b \le N$
  • $a \ne b$
  • $1 \le c \le 10^8$

Ejemplos

Entrada 1

3 7
1 1 2 3
1 3 1 1
3 1
2 1 3
3 1
1 2 1 2
3 2

Salida 1

4
0
0

Entrada 2

5 17
1 1 5 10
1 3 1 7
1 5 2 5
1 3 4 2
2 3 1
1 4 1 6
2 5 2
3 1
3 2
3 2
1 2 1 2
3 4
2 5 1
1 4 5 2
2 3 4
1 3 5 9
3 5

Salida 2

18
2
0
0
9

Entrada 3

10 37
1 2 3 6428496
1 7 10 41603701
1 2 7 61903527
1 1 6 57606292
1 2 1 43682226
1 8 2 59090781
3 6
3 10
1 10 7 15269842
3 6
3 7
1 3 10 39799671
1 3 5 28501778
3 5
2 1 10
1 6 10 37641690
2 9 6
3 8
1 6 8 89420938
3 9
2 6 3
1 9 6 17757145
2 9 3
1 1 9 26575112
2 3 8
1 2 1 19670627
2 3 5
1 1 5 12760556
2 3 4
1 4 1 36949637
3 7
2 6 9
1 6 8 74850387
2 3 8
3 3
1 7 3 77007154
3 3

Salida 3

274612258
215521477
187109093
171839251
211638922
68332023
151324465
224010174
0
223740409

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.