This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <vector>
using namespace std;
using ll = long long;
const int MAXN = 1e5 + 123;
const ll MOD = 1000000007;
vector<int> edg[MAXN];
ll pw(ll a, ll m) {
if (!m)
return 1;
a %= MOD;
if (m % 2)
return pw(a, m - 1) * a % MOD;
return pw(a * a, m >> 1);
}
signed main() {
ll n, d;
cin >> n >> d;
for (int i = 1; i < n; ++i) {
int u, v;
cin >> u >> v;
--u, --v;
edg[u].push_back(v);
edg[v].push_back(u);
}
if (n == 2) {
// 2 * 4^{d - 1} + 2^2 * 4^{d - 2} + 2^3 * 4^{d - 3} + ... + 2^k * 4^{d - k}
// 2^{2d - 1} + 2^{2d - 2} + 2^{2d - 3} + ... + 2^{2d - d} = 2^d * (1 + 2 + 4 + ... + 2^{d - 1})
cout << pw(4, d) << endl;
return 0;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |