Submission #1151292

#TimeUsernameProblemLanguageResultExecution timeMemory
1151292vladiliusStar Trek (CEOI20_startrek)C++20
23 / 100
1095 ms26768 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<int, int>; #define pb push_back #define ff first #define ss second const int mod = 1e9 + 7; int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n; ll d; cin>>n>>d; vector<int> g[n + 1]; for (int i = 1; i < n; i++){ int u, v; cin>>u>>v; g[u].pb(v); g[v].pb(u); } vector<int> p(n + 1), h(n + 1); function<void(int, int)> fill = [&](int v, int pr){ p[v] = pr; h[v] = 1; for (int i: g[v]){ if (i == pr) continue; fill(i, v); h[v] = min(h[v], h[i]); } h[v] = !h[v]; }; vector<vector<bool>> f(n + 1, vector<bool>(2)); function<void(int)> dfs = [&](int v){ int s = 0, x = 0; for (int i: g[v]){ if (i == p[v]) continue; if (!h[i]){ s++; x = i; } } for (int i: g[v]){ if (i == p[v]) continue; f[i][0] = f[v][1]; if (!s || (s == 1 && i == x)){ f[i][1] = f[v][0]; } else { f[i][1] = f[v][1]; } dfs(i); } }; vector<vector<int>> dp(n + 1, vector<int>(2)); for (int i = 1; i <= n; i++){ fill(i, 0); dp[i][h[i]] = 1; } vector<vector<int>> dp1(n + 1, vector<int>(2)); for (int v = 1; v <= n; v++){ fill(v, 0); f[v][0] = 0; f[v][1] = 1; dfs(v); int s1 = 0, s0 = 0; for (int x = 1; x <= n; x++){ s1 = (s1 + dp[x][1]) % mod; s0 = (s0 + dp[x][0]) % mod; } for (int x = 1; x <= n; x++){ dp1[v][h[v]] = (dp1[v][h[v]] + s1) % mod; dp1[v][f[x][1]] = (dp1[v][f[x][1]] + s0) % mod; } } dp = dp1; cout<<dp[1][1]<<"\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...