Secret

Time limit: 0.6s Memory limit: 256MB Input: Output:

Într-o companie, sunt NN angajați. Angajatul 11 este șeful companiei, iar fiecare dintre ceilalți angajați are un șef. Șeful celui de-al ii-lea angajat este Si (1Si<i)S_i \ (1 \leq S_i < i). Angajații doresc să transmită mai multe secrete între ei, dar fiecare angajat poate comunica direct doar cu șeful său și cu persoanele care se află sub șefia angajatului ales. Mai exact, persoana ii poate vorbi cu persoana jj dacă și numai dacă Sj=iS_j = i sau Si=jS_i = j.

O submulțime Q{1,2,,N}Q \subseteq \{1, 2, \dots, N\} de angajați, vor să transmită secrete între ei. Inițial, fiecare persoană din QQ are secretul său. Dacă o persoană știe un secret, îl poate transmite la oricare dintre persoanele cu care poate comunica direct. Din păcate, aflarea vreunuia dintre secrete de prea mulți angajați ar putea duce la falimentul companiei, așadar, vrei să fie cât mai puține persoane care îl află. Notăm cu f(Q)f(Q) numărul minim de persoane care trebuie să afle cel puțin un secret astfel încât fiecare angajat din QQ să știe secretul fiecărui alt angajat din QQ.

În figura din dreapta, persoana 11 poate comunica direct cu persoanele 2,3,42, 3, 4. Persoana 22 poate comunica direct cu persoanele 1,51, 5. Persoana 66 poate comunica direct cu persoanele 3,73, 7.

Pe același exemplu avem f({3,4,5,9})=6f(\{3, 4, 5, 9\}) = 6, deoarece pentru a transmite secretul e necesar și suficient să fie comunicat persoanelor 1,2,3,4,5,91, 2, 3, 4, 5, 9.

Cerință

Se vor rezolva TT scenarii. Pentru fiecare scenariu, trebuie să rezolvați următoarea problemă:

Se dă N,KN, K și șeful SiS_i al fiecărui angajat ii de la 22 la NN. Află numărul de submulțimi Q{1,2,,N}Q \subseteq \{1, 2, \dots, N\} pentru care f(Q)=Kf(Q) = K. Afișați acest număr modulo 109+710^9 + 7.

Date de intrare

Pe prima linie a intrării se află numărul TT de scenarii.
Pentru fiecare ii de la 11 la TT se vor afla câte două linii, reprzentând datele celui de al ii-lea scenariu.
Pe linia 2i2 \cdot i a intrarii de afla doua numere NN si KK.
Pe linia 2i+12 \cdot i + 1 se află un șir SS de lungime N1N - 1. Al ii-lea element reprezentând șeful celui de al i+1i+1-lea angajat.

Date de ieșire

Se va afișa un singur număr, reprezentând numărul de submulțimi care satisfac proprietatea din cerință (modulo 109+710^9 + 7).

Restricții și precizări

  • 1KN3 0001 \leq K \leq N \leq 3 \ 000;
  • Notăm cu sNs_N suma valorilor lui NN din toate scenariile
  • 1sN6 0001 \leq s_N \leq 6 \ 000
# Punctaj Restricții
1 11 Si=i1S_i = i - 1 pentru fiecare ii
2 10 Si=1S_i = 1 pentru fiecare ii
3 16 1N151 \leq N \leq 15 și sN300s_N \leq 300
4 22 1N801 \leq N \leq 80 și sN800s_N \leq 800
5 20 1N3001 \leq N \leq 300 și sN3 000s_N \leq 3 \ 000
6 21 Fără alte restricții

Exemplul

stdin

3
4 3
1 2 3
6 4
1 1 2 2 1
7 5
1 2 2 2 3 3

stdout

4
20
38

Explicație

În primul scenariu, mulțimile de cost 33 sunt {{1,3};{1,2,3};{2,4};{2,3,4}}\{ \{1, 3 \}; \{1, 2, 3 \}; \{2, 4 \}; \{2, 3, 4 \} \}. De asemenea, primul scenariu se încadreaza în primul subtask.

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