Pagini recente » Cod sursa (job #2567319) | Cod sursa (job #1061778) | Cod sursa (job #1535421) | Cod sursa (job #1392563) | Cod sursa (job #3250873)
#include <bits/stdc++.h>
#define int long long
#define MOD 1000000007
using namespace std;
vector<vector<int>>v;
queue<int>q;
int f[100005];
signed main()
{
int n, k, a, b, p=1, x, y, z;
cin>>n>>k;
v.resize(n+1);
for(int i=1; i<=n-1; i++)
{
cin>>a>>b;
v[a].push_back(b);
v[b].push_back(a);
}
q.push(1);f[1]=1;
while(!q.empty())
{
z=q.front();
q.pop();
if(v[z].size()<=1)
continue;
n=v[z].size();
a=1;b=1;
for(int i=1; i<=n; i++)
a*=i;
for(int i=1; i<=k-n; i++)
b*=i;
x=a/b;
if(k!=n)
b=b/(k-n);
y=a/b;
//cout<<z<<" "<<x<<" "<<y<<endl;
if(a==1)
p=(p*x)%MOD;
else
p=(p*y)%MOD;
for(int i=0; i<v[z].size(); i++)
{
b=v[z][i];
if(f[b]==0)
{
f[b]=1;
q.push(b);
}
}
}
cout<<p;
return 0;
}