Fişierul intrare/ieşire:arbsumpow.in, arbsumpow.outSursăOSEPI Baraj Seniori 1
AutorTamio-Vesa NakajimaAdăugată deMatteoalexandruMatteo Verzotti Matteoalexandru
Timp execuţie pe test0.25 secLimită de memorie131072 kbytes
Scorul tăuN/ADificultateN/A

Vezi solutiile trimise | Statistici

Arbsumpow

Municipiul B. a fost numit de curând staţiune turistică de interes naţional - astfel a decis să înceapă să desemneze anumite zone din oraş ca fiind centre culturale. Oraşul este format din N intersecţii, numerotate de la 1 la N, legate printre ele cu N - 1 drumuri, astfel încât oricare două intersecţii să fie legate direct sau indirect prin drumuri. Fiecare intersecţie are câte o valoare culturală, intersecţia i având valoarea v[i].

Oraşul poate desemna o mulţime S de intersecţii ca fiind centru cultural dacă şi numai dacă poţi ajunge din oricare intersecţie din S la oricare alta trecând doar prin intersecţii din S şi drumuri. Fie M mulţimea de mulţimi S ce pot fi desemnate ca centre culturale.

Pentru oricare mulţime de intersecţii S ∈ M, se consideră că valoarea culturală a centrului este dată de v(S), definit prin  v(S) = \left( \sum_{x \in S} v[x]\right)^P, pentru o constantă P.

Municipiul va desemna fiecare mulţime din M ca fiind centru cultural pentru câte o zi, într-o ordine oarecare. Primăria este curioasă despre suma valorilor culturale a tuturor centrelor desemnate, modulo 109+7, adică \left( \sum_{S \in M} v(S) \right) \mod 10^9 + 7.

Îi puteţi ajuta să găsească această valoare?

Date de intrare

În prima linie a fişierului de intrare arbsumpow.in se vor găsi valorile N, P. Urmează pe a doua linie valorile v[1], ..., v[N]. Pe cea de-a treia linie se vor găsi valorile p[2], ... , p[N], indicând că există pentru fiecare i de la 2 la N un drum între intersecţiile i şi p[i]. Se garantează ca p[i] < i oricare ar fi 1 < i ≤ N.

Date de ieşire

În fişierul de ieşire arbsumpow.out se va afişa o singură linie, ce conţine răspunsul cerut.

Restricţii

SubtaskPunctajRestricţii
171 ≤ N ≤ 15, 1 ≤ v[i] ≤ 109, 1 ≤ P ≤ 7
2121 ≤ N ≤ 100, v[1] = ... = v[N] = 1, 1 ≤ P ≤ 7
351 ≤ N ≤ 1 000, v[1] = ... = v[N] = 1, 1 ≤ P ≤ 7
481 ≤ N ≤ 1 000, 1 ≤ v[i] ≤ 109, P = 1
5101 ≤ N ≤ 100 000, 1 ≤ v[i] ≤ 109, P = 1
691 ≤ N ≤ 1 000, 1 ≤ v[i] ≤ 109, P = 2
7131 ≤ N ≤ 100 000, 1 ≤ v[i] ≤ 109, P = 2
8141 ≤ N ≤ 100 000, 1 ≤ v[i] ≤ 109, 1 ≤ P ≤ 7, o intersecţie e capătul a cel mult două drumuri
9221 ≤ N ≤ 100 000, 1 ≤ v[i] ≤ 109, 1 ≤ P ≤ 7

Exemple

arbsumpow.inarbsumpow.out
3 2
1 2 3
1 1
75
4 1
9 10 9 10
1 2 1
190
5 2
1 2 3 4 5
1 1 3 3
1133
7 2
1 1 1 1 1 1 1
1 1 1 2 5 2
590
10 3
13 8 4 8 6 13 6 8 14 9
1 2 3 3 2 6 5 4 8
12312296

Explicaţie

Pentru primul exemplu, muchiile sunt (1, 2), (1, 3). Subarborii sunt determinaţi de următoarele mulţimi de noduri: {1}, {2}, {3}, {1, 2}, {1, 3}, {1, 2, 3}. Acestea au sumele 1, 2, 3, 3, 4, 6. Ridicând acestea la pătrat ne dă 1, 4, 9, 9, 16, 36, iar însumând ne dă 75.

Trebuie sa te autentifici pentru a trimite solutii. Click aici

Cum se trimit solutii?