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 (1≤Si<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 2⋅i2 \cdot i a intrarii de afla doua numere NN si KK.
Pe linia 2⋅i+12 \cdot i + 1 se află un șir SS de lungime N−1N - 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

  • 1≤K≤N≤3 0001 \leq K \leq N \leq 3 \ 000;
  • Notăm cu sNs_N suma valorilor lui NN din toate scenariile
  • 1≤sN≤6 0001 \leq s_N \leq 6 \ 000
# Punctaj Restricții
1 11 Si=i−1S_i = i - 1 pentru fiecare ii
2 10 Si=1S_i = 1 pentru fiecare ii
3 16 1≤N≤151 \leq N \leq 15 și sN≤300s_N \leq 300
4 22 1≤N≤801 \leq N \leq 80 și sN≤800s_N \leq 800
5 20 1≤N≤3001 \leq N \leq 300 și sN≤3 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!