Submission #2474589
Source Code Expand
#include <bits/stdc++.h> using namespace std; const int maxn = 100010; int n,k,s[maxn],num[maxn],need[maxn]; int dp[maxn][2][3]; vector<int> tree[maxn]; int dfs1(int v,int u){ num[v] = 1;need[v] = 0; for(int i=0;i<tree[v].size();i++){ int t = tree[v][i]; if(t==u) continue; num[v] += dfs1(t,v); if(num[t]>=k) need[v]++; } return num[v]; } int dfs2(int v,int u){ int ans = 0; if(n-num[v]>=k&&num[v]>=2) ans = 1; int f = (n - num[v])>=k?1:0; for(int i=0;i<tree[v].size();i++){ int t = tree[v][i]; if(t==u) continue; ans = max(ans,dfs2(t,v)); ans = max(ans,need[t]+s[v]-dp[t][1][0]+f); } return ans; } void dfs3(int v,int u){ s[v] = 0; for(int i=0;i<tree[v].size();i++){ int t = tree[v][i]; if(t==u) continue; s[v] += dp[t][1][0]; dfs3(t,v); } } int dfs(int v,int u){ dp[v][1][0] = 0; if(num[v]>=k) dp[v][1][0] = 1; for(int i=0;i<tree[v].size();i++){ int t = tree[v][i]; int f = num[t]>=k?1:0; if(t==u) continue; if(dp[t][1][0]>=0) dp[v][1][0] = max(dp[v][1][0],need[v]+dp[t][1][0]-f); else dp[v][1][0] = max(dp[v][1][0],need[v]+dfs(t,v)-f); } return dp[v][1][0]; } int main(){ while(cin>>n>>k){ memset(dp,-1,sizeof dp); for(int i=1;i<n;i++){ int x,y;cin>>x>>y; tree[x].push_back(y); tree[y].push_back(x); } dfs1(1,0); dfs(1,0); dfs3(1,0); cout<<dfs2(1,0)<<endl; for(int i=1;i<=n;i++) tree[i].clear(); } return 0; }
Submission Info
Submission Time | |
---|---|
Task | E - Tree Separator |
User | cwlyzj |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 1510 Byte |
Status | WA |
Exec Time | 110 ms |
Memory | 14336 KB |
Judge Result
Set Name | All | ||||
---|---|---|---|---|---|
Score / Max Score | 0 / 100 | ||||
Status |
|
Set Name | Test Cases |
---|---|
All | 00_sample_00, 00_sample_01, 00_sample_02, 00_sample_03, 00_sample_04, 00_sample_05, 10_small_0, 10_small_1, 10_small_2, 10_small_3, 10_small_4, 20_random_0, 20_random_1, 20_random_2, 20_random_3, 20_random_4, 30_small_k_0, 30_small_k_1, 30_small_k_2, 30_small_k_3, 30_small_k_4, 30_small_k_5, 30_small_k_6, 30_small_k_7, 30_small_k_8, 30_small_k_9, 90_star_0, 90_star_1, 91_path_0, 91_path_1, 92_star_like_0, 92_star_like_1, 92_star_like_2, 92_star_like_3, 92_star_like_4 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
00_sample_00 | AC | 3 ms | 4992 KB |
00_sample_01 | AC | 3 ms | 4992 KB |
00_sample_02 | AC | 3 ms | 4992 KB |
00_sample_03 | AC | 3 ms | 4992 KB |
00_sample_04 | AC | 3 ms | 4992 KB |
00_sample_05 | AC | 3 ms | 4992 KB |
10_small_0 | AC | 3 ms | 4992 KB |
10_small_1 | AC | 3 ms | 4992 KB |
10_small_2 | AC | 3 ms | 4992 KB |
10_small_3 | AC | 3 ms | 4992 KB |
10_small_4 | AC | 3 ms | 4992 KB |
20_random_0 | AC | 69 ms | 7680 KB |
20_random_1 | AC | 8 ms | 5248 KB |
20_random_2 | AC | 110 ms | 9216 KB |
20_random_3 | AC | 33 ms | 6272 KB |
20_random_4 | AC | 12 ms | 5376 KB |
30_small_k_0 | WA | 55 ms | 7168 KB |
30_small_k_1 | AC | 63 ms | 7424 KB |
30_small_k_2 | WA | 22 ms | 5888 KB |
30_small_k_3 | AC | 84 ms | 8192 KB |
30_small_k_4 | AC | 110 ms | 8960 KB |
30_small_k_5 | WA | 15 ms | 5504 KB |
30_small_k_6 | AC | 61 ms | 7296 KB |
30_small_k_7 | WA | 31 ms | 6144 KB |
30_small_k_8 | WA | 28 ms | 6144 KB |
30_small_k_9 | AC | 60 ms | 7424 KB |
90_star_0 | AC | 89 ms | 9592 KB |
90_star_1 | AC | 88 ms | 9592 KB |
91_path_0 | AC | 106 ms | 14336 KB |
91_path_1 | AC | 107 ms | 13824 KB |
92_star_like_0 | AC | 96 ms | 9468 KB |
92_star_like_1 | AC | 98 ms | 9468 KB |
92_star_like_2 | AC | 99 ms | 9468 KB |
92_star_like_3 | AC | 104 ms | 9468 KB |
92_star_like_4 | AC | 95 ms | 9468 KB |