Hyper Tree 문제
시간 제한4초메모리 제한1024 MB
가중치가 있는 트리에서 간선 가중치를 비트 AND로 갱신하고, 주어진 정점에서 모든 정점까지 경로 OR 값의 합을 구합니다.
문제
개의 정점으로 이루어진 트리가 주어진다. 정점은 번부터 번까지 번호가 붙어 있고, 간선도 입력 순서대로 번부터 번까지 번호가 붙어 있다. 번 간선의 가중치는 이다.
두 가지 유형의 질의가 합해서 개 주어진다. 2번 질의가 주어질 때마다 답을 출력하라.
1 e v: 번 간선의 가중치 를 로 바꾼다. 여기서 는 Bitwise AND 연산이다.2 n: 를 출력한다. 는 정점 와 를 잇는 유일한 경로에 있는 간선 가중치를 모두 Bitwise OR 연산한 값이다. 이면 이다.
입력
첫째 줄에 과 가 공백으로 구분되어 주어진다.
다음 개의 줄에는 간선 정보 , , 가 공백으로 구분되어 주어진다. 번 간선은 정점 와 를 잇고, 초기 가중치는 이다.
다음 개의 줄에는 아래 형식 중 하나로 질의가 주어진다.
1 e v:2 n:
입력의 모든 수는 정수이고, 2번 질의가 적어도 하나 이상 주어짐이 보장된다.
출력
2번 질의의 결과를 질의가 주어진 순서대로 한 줄에 하나씩 출력한다.