Treebits

Time limit: 3.33s Memory limit: 333MB Input: treebits.in Output: treebits.out

Susi și Țuți tocmai au invatat despre arbori in informatica! Aceștia sunt grafuri neorientate conexe aciclice; cu alte cuvinte, un arbore de NN noduri are N1N-1 muchii și se poate ajunge din orice nod în oricare alt nod folosind un drum simplu unic. Un drum simplu este un drum care nu parcurge o muchie mai mult de o data.

Deoarece se plictisesc, Susi și Țuți s-au hotarat sa joace un joc pe un arbore cu NN noduri, unde fiecarui nod ii poate fi atribuit un pondere si doresc sa satisfaca QQ constrangeri de urmatorul tip:

  • Susi spune că ANDAND-ul pe biti al ponderilor de pe drumul simplu de la nodul 11 la nodul KK este VV.

Cerință

Se dau TT astfel de scenarii. Țuți trebuie să determine pentru fiecare dintre ele daca exista o atribuire a valorilor fiecarui nod in asa fel incat sa fie satisfacute toate constrangerile.

Date de intrare

Pe prima linie se va afla numarul natural TT, urmat de TT scenarii, dupa cum sunt descrise mai jos.

Pe prima linie a scenariului se vor afla numerele naturale NN si QQ, separate prin spatii.

Pe fiecare dintre urmatoarele N1N-1 linii ale scenariului se va afla cate o pereche de numere naturale nenule aa si bb, separate prin spatii, reprezentand o muchie intre nodurile aa si bb.

Pe fiecare dintre urmatoarele QQ linii ale scenariului se va afla cate o pereche de numere naturale KK si VV, reprezentand una dintre constrangerile lui Susi.

Date de ieșire

Se va afisa DA sau NU pe o singura linie, pentru fiecare scenariu, in functie de daca exista o atribuire a valorilor fiecarui nod in asa fel incat sa fie satisfacute toate constrangerile.

Restricții și precizări

  • 1T101 \leq T \leq 10
  • 1N200 0001 \leq N \leq 200\ 000
  • 1Q200 0001 \leq Q \leq 200\ 000
  • 1KiN1 \leq K_i \leq N
  • 0Vi<2310 \leq V_i < 2^{31}
  • Definim ANDAND-ul intre AA si BB, notat cu A&B=A \& B = numarul obtinut din bitii comuni ai lui AA si BB. De exemplu, daca A=13=1101(2)A = 13 = 1101(2) si B=11=1011(2)B = 11 = 1011(2), atunci A&B=1001(2)=9(2)A \& B = 1001(2) = 9(2).
  • Definim drumul simplu dintre nodurile aa si bb ca fiind succesiunea de noduri SS, astfel incat S1=a,,SK=bS_1 = a, \dots, S_K = b, exista muchiile (Si,Si+1)(S_i, S_{i+1}) pentru orice 1i<K1 \leq i < K, fiecare muchie este parcursa cel mult o data.
  • Daca pe un nod exista doua sau mai multe constrangeri contradictorii, atunci NU exista solutie.
  • Scenariile din exemplu sunt separate printr-un newline, dar in teste nu sunt.
  • Pentru teste in valoare de 1010 puncte: N=2,Q=2N = 2, Q = 2
  • Pentru alte teste in valoare de 1010 puncte: N10,Q1000,Vi<2N \leq 10, Q \leq 1000, V_i < 2
  • Pentru alte teste in valoare de 1010 puncte: Arborele este un lant de forma 12N1-2- \dots -N; N,Q1.000,Vi<2N, Q \leq 1.000, V_i < 2
  • Pentru alte teste in valoare de 1010 puncte: Arborele este un lant de forma 12N1-2- \dots -N; N,Q1000N, Q \leq 1000
  • Pentru alte teste in valoare de 1010 puncte: Arborele este un lant de forma 12N1-2- \dots -N; Vi<2V_i < 2
  • Pentru alte teste in valoare de 1010 puncte: Arborele este un lant de forma 12N1-2- \dots -N;
  • Pentru alte teste in valoare de 2020 de puncte: Vi<2V_i < 2
  • Pentru alte teste in valoare de 2020 de puncte: nicio restrictie suplimentara

Exemplul 1

treebits.in

4

3 2
1 2
2 3
2 5
3 4

6 4
1 2
1 3
3 4
3 5
3 6
1 100
2 96
3 36
4 4

6 4
1 2
1 3
3 4
3 5
3 6
1 100
2 95
3 36
4 4

2 2
1 2
1 0
2 1

treebits.out

DA
DA
NU
NU

Explicație

In primul scenariu, putem atribui nodului 11 valoarea 1313, nodului 22 valoarea 55, iar nodului 33 valoarea 44. Atunci, restrictiile V(1) & V(2)=13 & 5=5V(1)\ \&\ V(2) = 13\ \&\ 5 = 5 si V(1) & V(2) & V(3)=13 & 5 & 4=4V(1)\ \&\ V(2)\ \&\ V(3) = 13\ \&\ 5\ \&\ 4 = 4 sunt satisfacute. De asemenea, V(1)V(1) ar fi putut lua si valorile 55, 77, 99, 1515, 3737, etc.

In al doilea scenariu, putem atribui nodului 11 valoarea 100100, nodului 22 valoarea 9696, nodului 33 valoarea 3636, nodului 44 valoarea 44, nodului 55 valoarea 11, iar nodului 66 valoarea 00. Atunci, restrictiile V(1)=100V(1) = 100, V(1) & V(2)=100 & 96=96V(1)\ \&\ V(2) = 100\ \&\ 96 = 96, V(1) & V(3)=100 & 36=36V(1)\ \&\ V(3) = 100\ \&\ 36 = 36 si V(1) & V(3) & V(4)=100 & 36 & 4=4V(1)\ \&\ V(3)\ \&\ V(4) = 100\ \&\ 36\ \&\ 4 = 4 sunt satisfacute. De asemenea, nodurile 55 si 66 pot lua orice valoare.

In al treilea scenariu, nu exista solutie pentru care 100 & V(2)=95100\ \&\ V(2) = 95.

In al patrulea scenariu, V(1)=0V(1) = 0 si V(1) & V(2)=0 & V(2)=1V(1)\ \&\ V(2) = 0\ \&\ V(2) = 1 nu are solutie.

Log in or sign up to be able to send submissions!