Pagini recente » Cod sursa (job #1865626) | Cod sursa (job #1597214) | Cod sursa (job #1183832) | Cod sursa (job #706747) | Cod sursa (job #2455117)
#include <bits/stdc++.h>
#define MAX 104
#define MOD 30011
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int n,k,C[MAX][MAX],root,dp[MAX][MAX];
bool hasFather[MAX];
vector <int> child[MAX];
void read();
void dfs(int);
void print();
int main(){
read();
dfs(root);
print();
return 0;
}
void dfs(int nod){
for(auto it:child[nod])
dfs(it);
int i, t;
for(i=k;i>=1;--i){
dp[nod][i]=1;
for(auto it:child[nod]){
dp[it][i+1]=(dp[it][i+1]+dp[it][i+2])%MOD;
t=dp[it][i+1];
dp[nod][i]= (dp[nod][i]*t)%MOD;
}
}
}
void print(){
int i,S=0;
for(i=1;i<=k;++i)
S=(S+dp[root][i])%MOD;
fout<<S;
}
void read(){
int i,j,a,b;
fin>>n>>k;
for(i=1;i<n;++i){
fin>>a>>b;
child[a].push_back(b);
hasFather[b]=1;
}
for(i=1;i<=n;++i)
if(!hasFather[i]){
root=i;
break;
}
}