LearnToCP
Prijavi se
Navigacija
PočetnaRoad-mapaProblemiO Nama
Teorija
Takmičarsko Znanje
Izbor Radnog Okruženja (IDE)Interaktivni ZadaciOutput-only Zadaci
Osnove
Tvoj Prvi ProgramTipovi podataka, Unos i IzlazC++ sintaksaModuloFunkcijeVektoriMatriceVremenska Složenost Algoritma
Sortiranje
SortiranjeSortiranje PrebrojavanjemRadix Sort
Tehnike Optimizacije
Dva PokazivačaZbir brojeva od 1 do nZbir PrefiksaBinarna PretragaPohlepni AlgoritmiFunkcije Binarne PretrageBinarna Pretraga po RešenjuPodeli, pa Vladaj
Binarni Brojevi
Binarni BrojeviBrojevi u koduOperacije nad BitovimaBitmaske
Matematika
Binarno StepenovanjeProsti BrojeviRastavljanje na proste činioceNZD i NZSEratostenovo SitoModifikovano Sito
Strukture Podataka
Niske (Stringovi)StekRedMapeSkupovi (Set)Red sa PrioritetomKorišćenje Proizvoljnih KriterijumaSegmentna StablaFenvikova StablaSparse TabeleDisjunktni SkupoviSqrt Dekompozicija
Kombinatorika
Pravilo SabiranjaPravilo MnoženjaKombinatorni ObjektiPrincip Uključenja Isključenja
Geometrija
Osnove GeometrijeVektoriVektorski i Skalarni ProizvodLinijePoligoniUgloviTačka u PoligonuRastojanja i Tačke PresekaKonveksni OmotačKrugovi
Rekurzija
PokazivačiRekurzijaGenerisanje Kombinatornih Objekata
Dinamičko Programiranje
O DP-uDP problemiDP nad StablimaDP nad Bitmaskama
Teorija Grafova
GrafoviDFS i BFSNajkraći PuteviStablaTopološko SortiranjeDajkstrin AlgoritamMinimalna Razapinjuća StablaAlgoritmi Najkraćih Puteva
Napredna Teorija Grafova
Dvostruka PovezanostJako Povezane KomponenteBipartitni GrafMaksimalni Protok u GrafuFord-Fulkersonov AlgoritamDualnost Protoka i Minimalnog PresekaTeško-Laka DekompozicijaCentroidna Dekompozicija
Napredne Strukture Podataka
2D i 3D Segmentna StablaLenjo PropagiranjeImplicitna Segmentna StablaPerzistentna Segmentna StablaNajbliži Zajednički PredakTrieBalansirana Binarna Stabla PretrageMoov Algoritam

Brojanje oblasti

HardProblem #69
VremeMemorijaUlazIzlaz
1 s64 MBstdinstdout

Pazi na veličinu proizvoda pre nego što ga smanjiš po modulu 10^9 + 7.

U državi ima n gradova i n−1 dvosmernih puteva, tako da se iz svakog grada stiže do svakog drugog, i to na tačno jedan način - mreža puteva je stablo.

Vlada deli državu na oblasti. Oblast je neprazan skup gradova koji je povezan: iz svakog njegovog grada može se stići do svakog drugog, ali samo putevima čija su oba kraja u tom istom skupu. Manjom oblašću se lakše upravlja, pa u jednu ne sme da uđe više od K gradova.

Dve oblasti se razlikuju ako im se razlikuju skupovi gradova. Odredi na koliko načina vlada može da izabere jednu oblast. Tih načina ima previše da bi stali u bilo koji ceo broj, pa ispiši ostatak pri deljenju sa 109+7.

Ulaz

U prvoj liniji ulaza je ceo broj t - broj test primera.
Za svaki test primer, u prvoj liniji stoje brojevi n i K - koliko ima gradova i koliko ih najviše sme u jednu oblast.
Sledi n−1 linija, a u svakoj po dva broja u i v - između gradova u i v postoji put, prohodan u oba smera.

Gradovi nose brojeve od 1 do n. Putevi uvek povezuju sve gradove i nigde ne zatvaraju krug, dakle čine stablo.

Izlaz

Za svaki test primer ispiši u posebnoj liniji broj oblasti, po modulu 109+7.

Primer

Input
3
5 3
1 2
1 3
2 4
2 5
4 4
1 2
1 3
1 4
1 1
Output
13
11
1

Prvi test primer je ova mapa:

    1
   / \
  2   3
 / \
4   5

U njoj oblast od jednog grada može da bude svaki od njih 5. Oblasti od dva grada ima koliko i puteva, dakle 4. Od tri grada ih ima 4: 1,2,3 pa 1,2,4 pa 1,2,5 i 2,4,5. Skup 1,4 nije oblast jer između ta dva grada nema puta, a nije ni 3,4,5 - ta tri grada se drže samo preko gradova koji u skup nisu ušli. Većih od tri grada ovde ne sme da bude. U drugom test primeru se svi putevi sastaju u gradu 1, a K je toliko veliko da nijednu oblast ne odbacuje: 4+3+3+1=11. U trećem ima samo jedan grad, pa i samo jedna oblast.

Ograničenja

1≤t≤100
1≤n≤1000
1≤K≤100
1≤u,v≤n i u=v
Zbir n preko svih test primera ne prelazi 5000

Pošalji svoje rešenje

Prijavi se da pošalješ rešenje i pratiš svoj napredak.

Prijavi se