아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

복잡한 쿼리

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

요약
연결된 가중 무향 그래프에서 d(u,v)를 u에서 v로 가는 모든 보행 중 XOR 가중치의 최댓값으로 정의하고, l<=i<j<=r인 모든 쌍의 d(i,j)를 XOR한 값을 묻는 질의에 답한다.
난이도

어려움10점 중 8점

유형
그래프, 비트 연산, 유니온 파인드, 누적 합
정답자
아직 제출이 없습니다

문제

출제진은 여러분이 고통받는 모습을 즐기므로, 여러분이 별로 보고 싶지 않은 주제들을 합쳐서 문제를 내기로 했다. NP 문제인 최장 경로 문제, XOR, 쿼리가 합쳐진 이 문제를 풀어보자.

NN개의 정점과 MM개의 가중치 있는 무방향 간선으로 이루어진 연결그래프 GG가 있다. GG에서 경로의 가중치는 일반적인 경우와 다르게 계산되는데, 지난 간선들의 가중치를 XOR한 값이다. 한 간선을 여러 번 지나는 것이 허용되며, 이 경우 그 횟수만큼 XOR해야 함에 유의하자.

정점 uu와 vv에 대해 uu에서 vv로 가는 최대 가중치의 경로를 uu에서 vv로 가는 최장 경로라고 한다. 이 때, 최장 경로의 가중치를 d(u,v)d(u,v)라고 하자. QQ번 다음과 같은 쿼리를 해결해야 한다.

  • ll rr: l≤i<j≤rl \leq i < j \leq r 인 모든 ii와 jj에 대해, d(i,j)d(i,j) 값들을 XOR한 값을 구한다.

입력

첫 번째 줄에 NN, MM, QQ가 주어진다. (1≤N,M,Q≤100 000)(1 \leq N,M,Q \leq 100\,000)

이후 MM개의 줄에 걸쳐 간선의 정보가 uu, vv, ww가 주어진다. 이는 정점 uu와 vv를 잇는 가중치 ww의 간선이라는 뜻이다. 양 끝점이 같은 간선이 있을 수 있으며 같은 정점 쌍을 잇는 간선이 여럿 있을 수 있음에 유의하라. (1≤u,v≤N,0≤w<230)(1 \leq u,v \leq N, 0 \leq w < 2^{30})

이후 QQ개의 줄에 걸쳐 쿼리의 정보 ll, rr이 주어진다. (1≤l<r≤N)(1 \leq l < r \leq N)

출력

각 쿼리의 답을 순서대로 줄바꿈으로 구분하여 출력한다.

예제1

  1. 예제 1

    입력
    8 10 7
    1 2 662784558
    3 2 195868257
    3 4 294212653
    4 5 299265014
    6 5 72652580
    6 7 29303370
    7 8 183954825
    2 1 752722885
    5 3 197591314
    8 4 877461873
    4 8
    5 7
    6 7
    2 3
    7 8
    3 4
    2 7
    
    예상 출력
    0
    713437792
    738051848
    716356296
    736682272
    1003204975
    987493236