만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

Gemini Tree (Ver.Jadeite)

시간 제한5초메모리 제한1024 MB

요약
간선 길이가 바뀔 때마다, 인접한 정점끼리 돌을 교환해 한 색으로만 이루어진 두 덩어리 이하로 나누는 최소 비용을 구합니다.
난이도

어려움10점 중 9점

유형
트리, 분할 정복, 세그먼트 트리
정답자
아직 제출이 없습니다

문제

각 정점에 초록색 또는 파란색 돌이 하나씩 놓인 트리를 생각한다. 이 트리는 아래 연산 1과 연산 2를 수행한 뒤 조건 3을 만족할 수 있으면 "Gemini Tree"라고 부른다.

  1. 먼저 간선으로 직접 연결된 정점 쌍을 골라, 두 끝점에 놓인 돌을 서로 바꾼다. 이 연산을 0회 이상 원하는 만큼 반복한다.
  2. 다음으로 간선을 최대 1개 골라 삭제한다.
  3. 이때 트리는 최대 두 개의 연결 요소로 나뉘고, 각 연결 요소에는 한 종류의 돌만 있다.

각 간선에 길이가 주어진 Gemini Tree의 값을 다음과 같이 정의한다.

  1. 먼저 간선으로 직접 연결된 정점 쌍을 골라, 끝점에 놓인 돌을 서로 바꾼다. 이 연산을 0회 이상 반복한다. 한 번 바꿀 때마다 드는 비용은 그 간선의 길이와 같다.
  2. 다음으로 간선을 최대 1개 골라 삭제한다.
  3. 이때 트리는 최대 두 개의 연결 요소로 나뉘고, 각 연결 요소에는 한 종류의 돌만 있다.
  4. 조건 3을 만족하는 데 필요한 연산 1의 총비용의 최솟값이 이 트리의 값이다.

값을 계산할 때 돌은 실제로 이동하지 않는다.

정점이 NN개인 Gemini Tree가 주어진다. NN은 홀수이다. ii번째 간선은 정점 uiu_i와 viv_i를 잇고, 길이는 wiw_i이다. 정점에 놓인 돌의 색은 문자열 S=s1s2…sNS = s_1s_2\dots s_N으로 주어지며, sis_i는 정점 ii의 돌 색이다.

이 트리에 대해 QQ번의 연산을 순서대로 수행한다. jj번째 연산은 두 정수 eje_j, aja_j로 주어지며, eje_j번째 간선의 길이를 aja_j만큼 늘린다. 이 변경은 이후 연산에도 그대로 유지된다. 각 연산 후 트리의 값을 출력한다.

입력

NN

s1s2…sNs_1s_2 \dots s_N

u1u_1 v1v_1 w1w_1

⋮\vdots

uN−1u_{N-1} vN−1v_{N-1} wN−1w_{N-1}

QQ

e1e_1 a1a_1

⋮\vdots

eQe_Q aQa_Q

출력

QQ개의 줄을 출력한다. jj번째 줄에는 jj번째 연산을 수행한 후 트리의 값을 출력한다. 각 줄의 끝에는 줄바꿈을 넣는다.

제한

  • 모든 입력은 정수이다.
  • 3≤N≤1053 \le N \le 10^5
  • NN은 홀수이다.
  • sis_i는 "G" 또는 "B"이며, 정점 ii의 돌 색을 나타낸다. "G"는 초록색, "B"는 파란색이다.
  • 1≤ui,vi≤N1 \le u_i, v_i \le N
  • 0≤wi≤1050 \le w_i \le 10^5
  • 주어진 그래프는 Gemini Tree이다.
  • 1≤Q≤1051 \le Q \le 10^5
  • 1≤ej≤N−11 \le e_j \le N-1
  • 1≤aj≤1051 \le a_j \le 10^5

힌트

첫 번째 샘플에는 초록색 돌이 하나뿐이다. 따라서 이 문제는 그 돌을 최소 비용으로 잎 정점 중 하나로 옮기는 문제이다.

예제3

  1. 예제 1

    입력
    5
    GBBBB
    1 2 0
    1 3 0
    2 4 0
    2 5 0
    5
    1 1
    2 3
    3 3
    4 10
    2 2
    
    예상 출력
    0
    1
    1
    3
    4
    
  2. 예제 2

    입력
    5
    BGBGB
    1 2 0
    1 3 0
    2 4 0
    2 5 1000
    4
    4 1
    3 1
    1 1
    2 1
    
    예상 출력
    0
    1
    3
    4
    
  3. 예제 3

    입력
    7
    GGGBBBB
    1 5 1
    2 5 1
    7 5 0
    7 6 0
    3 6 0
    4 6 0
    6
    5 1
    5 1
    5 1
    6 3
    3 3
    5 100000
    
    예상 출력
    1
    2
    2
    3
    6
    11