Submission #1289494

#TimeUsernameProblemLanguageResultExecution timeMemory
1289494daffuwuStar Trek (CEOI20_startrek)C++20
0 / 100
2 ms572 KiB
#include <bits/stdc++.h> using namespace std; #define fr first #define sc second //startrek int n, u, v, ans, cnt[2], sz[100069]; long long d, wys[100069][2]; bool dp[100069], con[100069], more[100069]; vector<int> al[100069]; const int dv = 1e9+7; int fe(int x, long long y) { int res = 1; for (; y>0; y/=2) { if (y%2==1) res = 1ll*res*x%dv; x = 1ll*x*x%dv; } return res; } void dfs(int u, int pv) { sz[u] = 1; for (auto v:al[u]) { if (v == pv) continue; dfs(v, u); if (!dp[v] && dp[u]) more[u] = 1; dp[u] |= !dp[v]; sz[u] += sz[v]; } } void dfs_r(int u, int pv) { if (dp[u]) { con[u] = 1; if (!con[pv]) more[u] = 1; } else con[u] = !more[pv]; cnt[con[u]]++; for (auto v:al[u]) { if (v == pv) continue; dfs_r(v, u); } } void dfs_dp(int u, int pv) { if (!dp[u]) wys[u][0] = cnt[1]; for (auto v:al[u]) { if (v == pv) continue; dfs_dp(v, u); wys[u][0] += wys[v][1]; } wys[u][1] = sz[u]*n-wys[u][0]; } int main() { int i; scanf("%d%lld", &n, &d); for (i=1; i<=n-1; i++) { scanf("%d%d", &u, &v); al[u].push_back(v); al[v].push_back(u); } dfs(1, 0); con[0] = more[0] = 1; dfs_r(1, 0); dfs_dp(1, 0); ans = wys[1][1]%dv; printf("%d\n", ans); }

Compilation message (stderr)

startrek.cpp: In function 'int main()':
startrek.cpp:67:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   67 |     scanf("%d%lld", &n, &d);
      |     ~~~~~^~~~~~~~~~~~~~~~~~
startrek.cpp:70:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   70 |         scanf("%d%d", &u, &v);
      |         ~~~~~^~~~~~~~~~~~~~~~
#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...