QOJ.ac

QOJ

実行時間制限: 5 s メモリ制限: 512 MB 満点: 100

#18823. 트리와 쿼리 20

統計

Il y a une forêt composée de $N$ sommets. Les sommets sont numérotés de $1$ à $N$ et il n'y a pas d'arêtes. Chaque sommet $v$ possède un entier $X_v$, initialement $X_v = 1$.

Écrivez un programme qui exécute les requêtes suivantes.

  • 1 $a$ $b$ $c$ : Connecter les sommets $a$ et $b$ par une arête de poids $c$. L'entrée garantit que le résultat de la requête est une forêt.
  • 2 $a$ $b$ : Supprimer l'arête reliant les sommets $a$ et $b$. L'entrée garantit que cette arête existe.
  • 3 $a$ : Changer $X_a$ en $1-X_a$. Ensuite, dans l'arbre contenant $a$, calculer la valeur suivante.
    • Soient $v_1, v_2, \dots, v_k$ les sommets de l'arbre. Calculer $\displaystyle \min_{1 \le i \le k}{\left\{ \sum_{1 \le j \le k}{dist(v_i, v_j) \times X_{v_j}} \right\}}$ et l'afficher. $dist(v_i, v_j)$ est la somme des poids de toutes les arêtes sur le chemin de $v_i$ à $v_j$.

Entrée

La première ligne contient le nombre de sommets $N$ et le nombre de requêtes $Q$. Les $Q$ lignes suivantes contiennent chacune une requête.

Les numéros de sommets donnés dans les requêtes ($a$, $b$ pour les requêtes de type 1 et 2, $a$ pour la requête de type 3) sont chiffrés et doivent être déchiffrés avant d'exécuter la requête. Soit $x$ le numéro de sommet donné en entrée et $S$ la valeur obtenue lors de la dernière requête de type 3 ; alors le numéro de sommet déchiffré est $(x-1+S) \bmod {n} + 1$.

Sortie

Pour chaque requête de type 3, afficher la valeur calculée sur une ligne séparée, dans l'ordre où les requêtes sont données.

Contraintes

  • $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$

Exemples

Entrée 1

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

Sortie 1

4
0
0

Entrée 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

Sortie 2

18
2
0
0
9

Entrée 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

Sortie 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.