思路:得出结果 ans = 1*C(0, n-1) + 2*C(1, n-1)+.....+n*C(n-1,n-1) = 2 ^(n-1) + (n-1) * 2^(n - 2),再快速幂取模就行了
#include<cstdio>
#include<cstring>
#include<algorithm>
typedef long long ll;
const int maxn = 1e5 + 10;
const ll mod = 1e9 + 7;
using namespace std;
ll po(ll a, ll n, ll m) {
ll res = 1;
while(n) {
if(n & 1) res = res * a % m;
a = a * a % m;
n >>= 1;
}
return res;
}
int main() {
ll n, a, b;
while(scanf("%lld", &n) != EOF) {
for(int i = 0; i < n - 1; i++) {
scanf("%lld %lld", &a, &b);
}
ll r1 = po(2, n - 1, mod);
ll r2 = po(2, n - 2, mod);
ll r3 = ((n - 1) * r2) % mod;
printf("%lld\n", (r1 + r3) % mod);
}
return 0;
}