Submission #791459

#TimeUsernameProblemLanguageResultExecution timeMemory
791459ttamxStar Trek (CEOI20_startrek)C++14
0 / 100
15 ms376 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; const int N=1005; const ll mod=1e9+7; ll binpow(ll a,ll b){ ll res=1; while(b>0){ if(b&1)res*=a,res%=mod; a*=a,a%=mod; b>>=1; } return res; } int n; ll d,ans,sum; vector<int> adj[N]; ll dp[N][2]; bool dfs(int u,int p){ bool res=true; bool ok=true; for(auto v:adj[u]){ if(v==p)continue; ok=false; res&=dfs(v,u); } res^=true; return res|ok; } bool dfs2(int u,int p,int t,bool w){ bool res=true; bool ok=true; for(auto v:adj[u]){ if(v==p)continue; ok=false; res&=dfs2(v,u,t,w); } if(u==t){ ok=false; res&=w; } res^=true; return res|ok; } int main(){ cin.tie(nullptr)->sync_with_stdio(false); cin >> n >> d; for(int i=1;i<n;i++){ int u,v; cin >> u >> v; adj[u].emplace_back(v); adj[v].emplace_back(u); } for(int i=1;i<=n;i++)sum+=dfs(i,i); for(int i=1;i<=n;i++)ans+=sum*dfs2(1,1,i,true); cout << ans; }
#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...