Universal Cup Judging System

Universal Cup

Time Limit: 5.5 s Memory Limit: 1024 MB Total points: 100 Hackable ✓
Statistics

각 정점에 빨간색, 노란색 또는 초록색으로 빛나는 전구가 있는 트리가 주어집니다. 다음 유형의 질의들에 답하세요:

  • 1 v c — 정점 $v$에 있는 전구의 색깔을 색깔 $c$로 변경합니다;
  • 2 v — 노란색으로 빛나는 것이 보장되는 정점 $v$가 주어질 때, 트리에서 $v$를 지나는 가장 짧은 신호등을 찾아 그 안에 포함된 간선의 개수를 출력합니다. 신호등은 트리의 단순 경로 중 한쪽 끝이 빨간색이고, 다른 쪽 끝이 초록색이며, 경로의 내부 정점 중 적어도 하나가 노란색인 경로로 정의됩니다.

입력

입력의 첫 번째 줄에는 테스트 케이스의 개수를 나타내는 정수 $t$가 주어집니다 ($1 \le t \le 2 \cdot 10^5$). 각 테스트 케이스에 대하여:

첫 번째 줄에는 트리의 정점 개수와 질의의 개수를 나타내는 두 정수 $n$과 $q$가 주어집니다 ($1 \le n, q \le 2 \cdot 10^5$).

다음 $n - 1$개의 줄에는 각각 트리의 한 간선의 양 끝점을 나타내는 한 쌍의 정수 $u_i$와 $v_i$가 주어집니다 ($1 \le u_i, v_i \le n$; $u_i \ne v_i$). 이 간선들이 트리를 이룬다는 것이 보장됩니다.

다음 줄에는 글자 "R", "Y", "G"로 이루어진 길이 $n$의 문자열이 주어지며, 여기서 $i$번째 글자는 $i$번째 정점에 있는 전구의 초기 색깔을 나타냅니다. "R"은 빨간불, "Y"는 노란불, "G"는 초록불을 의미합니다.

그다음에는 $q$개의 질의에 대한 설명이 한 줄에 하나씩 이어집니다:

  • 1 v c — 정점 $v$에 있는 전구의 색깔을 색깔 $c$로 변경합니다 ($1 \le v \le n$; $c \in \{\texttt{R}, \texttt{Y}, \texttt{G}\}$);
  • 2 v — $v$를 지나는 가장 짧은 신호등의 길이를 출력합니다 ($1 \le v \le n$). 이 질의가 주어질 시점에 정점 $v$의 전구는 노란색으로 빛나고 있음이 보장됩니다. 또한 이 유형의 질의가 적어도 하나 존재함이 보장됩니다.

모든 테스트 케이스에서 $n$의 합은 $2 \cdot 10^5$을 초과하지 않음이 보장됩니다. 모든 테스트 케이스에서 $q$의 합은 $2 \cdot 10^5$을 초과하지 않음이 보장됩니다.

출력

각 테스트 케이스와 2 v 유형의 각 질의마다, 빨간색 정점에서 시작하여 노란색 정점 $v$를 지나 초록색 정점에서 끝나는 트리상의 가장 짧은 단순 경로에 있는 간선의 개수를 나타내는 하나의 수 $d$를 출력합니다. 그러한 경로가 존재하지 않으면 $-1$을 출력합니다.

예제

입력 1

1
7 7
1 2
2 3
2 4
4 5
4 6
6 7
RYGYRGY
2 2
1 7 G
2 4
1 1 Y
2 2
1 5 Y
2 4

출력 1

2
2
3
-1

입력 2

3
3 2
1 2
2 3
YRG
2 1
1 1 Y
4 3
1 2
2 3
2 4
RYGY
2 2
1 1 Y
2 4
5 8
1 2
2 3
3 4
3 5
YRYGY
2 3
1 5 G
2 1
1 2 Y
2 3
1 1 R
2 3
1 4 Y

출력 2

-1
2
-1
2
-1
-1
3

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#1218EditorialOpen题解jianglyView

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.