Submission #41841031
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define rep(i,a,n) for (int i=a;i<(int)(n);i++)
// #define per(i,a,n) for (ll i=n;i-->(ll)(a);)
// 2 * math.log(200000)/math.log(2) = 35.219280948873624
const int lim = 50;
const int INF=0x3f3f3f3f;
ll read(){ll r;scanf("%lld",&r);return r;}
vector<int> e[200010];
array<vector<int>,3> dp[200010]; // dp[u][与子树连的个数][向下最多颜色] = 以下已有贡献最多颜色
auto chmin=[](auto&a,const auto &b){a=min(a,b);};
int sz[200010];
auto _=[](int siz){return min(siz,lim);};
void dfs(int u,int f){
sz[u] = 1; // 重用
rep(c,0,3) dp[u][c] = vector(1+2,INF);
dp[u][0][1] = 1;
auto merge=[&](int v){
array<vector<int>,3> ndp;
rep(c,0,3) ndp[c] = vector(_(sz[u]+sz[v])+1,INF);
rep(i,1,_(sz[u])+1) rep(c0,0,3) rep(j,1,_(sz[v])+1) rep(c1,0,3) {
chmin(ndp[c0 ][max(i,j+1)], max({dp[u][c0][i], dp[v][c1][j], i+j})); // 不连u-v
if(c0 < 2 and c1 < 2){
chmin(ndp[c0+1][max(i,j )], max({dp[u][c0][i], dp[v][c1][j], i+j-1})); // 连 u-v
}
}
sz[u] += sz[v];
rep(c,0,3) {
dp[u][c].resize(_(sz[u])+2,INF);
rep(j,1,_(sz[u])+1) dp[u][c][j] = ndp[c][j];
}
};
for(auto v:e[u]) if(v!=f){
dfs(v,u);
merge(v);
}
}
int main(){
int n=read();
rep(i,1,n){
int u=read();
int v=read();
e[u].push_back(v);
e[v].push_back(u);
}
dfs(1,-1);
int ans = INF;
rep(c,0,3) rep(i,1,_(sz[1])+1) chmin(ans, dp[1][c][i]);
assert(ans <= lim);
printf("%d\n",ans);
return 0;
}
Submission Info
Compile Error
./Main.cpp: In function ‘ll read()’:
./Main.cpp:10:21: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
10 | ll read(){ll r;scanf("%lld",&r);return r;}
| ~~~~~^~~~~~~~~~~
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
600 / 600 |
Status |
|
|
Set Name |
Test Cases |
Sample |
sample00.txt, sample01.txt, sample02.txt |
All |
sample00.txt, sample01.txt, sample02.txt, testcase00.txt, testcase01.txt, testcase02.txt, testcase03.txt, testcase04.txt, testcase05.txt, testcase06.txt, testcase07.txt, testcase08.txt, testcase09.txt, testcase10.txt, testcase11.txt, testcase12.txt, testcase13.txt, testcase14.txt, testcase15.txt, testcase16.txt, testcase17.txt, testcase18.txt, testcase19.txt, testcase20.txt, testcase21.txt, testcase22.txt, testcase23.txt, testcase24.txt, testcase25.txt, testcase26.txt, testcase27.txt, testcase28.txt, testcase29.txt, testcase30.txt, testcase31.txt, testcase32.txt, testcase33.txt, testcase34.txt, testcase35.txt, testcase36.txt, testcase37.txt, testcase38.txt, testcase39.txt, testcase40.txt, testcase41.txt, testcase42.txt, testcase43.txt |
Case Name |
Status |
Exec Time |
Memory |
sample00.txt |
AC |
24 ms |
22444 KiB |
sample01.txt |
AC |
20 ms |
22488 KiB |
sample02.txt |
AC |
24 ms |
22544 KiB |
testcase00.txt |
AC |
18 ms |
22432 KiB |
testcase01.txt |
AC |
26 ms |
22488 KiB |
testcase02.txt |
AC |
721 ms |
202900 KiB |
testcase03.txt |
AC |
715 ms |
212444 KiB |
testcase04.txt |
AC |
677 ms |
185164 KiB |
testcase05.txt |
AC |
672 ms |
187772 KiB |
testcase06.txt |
AC |
664 ms |
188324 KiB |
testcase07.txt |
AC |
651 ms |
186292 KiB |
testcase08.txt |
AC |
440 ms |
46064 KiB |
testcase09.txt |
AC |
441 ms |
46324 KiB |
testcase10.txt |
AC |
464 ms |
47340 KiB |
testcase11.txt |
AC |
441 ms |
45800 KiB |
testcase12.txt |
AC |
589 ms |
59004 KiB |
testcase13.txt |
AC |
573 ms |
57848 KiB |
testcase14.txt |
AC |
554 ms |
56480 KiB |
testcase15.txt |
AC |
597 ms |
59328 KiB |
testcase16.txt |
AC |
554 ms |
56480 KiB |
testcase17.txt |
AC |
590 ms |
58492 KiB |
testcase18.txt |
AC |
597 ms |
58700 KiB |
testcase19.txt |
AC |
587 ms |
57676 KiB |
testcase20.txt |
AC |
500 ms |
47728 KiB |
testcase21.txt |
AC |
507 ms |
47032 KiB |
testcase22.txt |
AC |
538 ms |
48912 KiB |
testcase23.txt |
AC |
506 ms |
47632 KiB |
testcase24.txt |
AC |
537 ms |
54072 KiB |
testcase25.txt |
AC |
572 ms |
56044 KiB |
testcase26.txt |
AC |
580 ms |
56636 KiB |
testcase27.txt |
AC |
527 ms |
54132 KiB |
testcase28.txt |
AC |
562 ms |
56176 KiB |
testcase29.txt |
AC |
548 ms |
55452 KiB |
testcase30.txt |
AC |
558 ms |
56264 KiB |
testcase31.txt |
AC |
552 ms |
56068 KiB |
testcase32.txt |
AC |
553 ms |
55508 KiB |
testcase33.txt |
AC |
565 ms |
56624 KiB |
testcase34.txt |
AC |
571 ms |
56896 KiB |
testcase35.txt |
AC |
522 ms |
54140 KiB |
testcase36.txt |
AC |
547 ms |
55800 KiB |
testcase37.txt |
AC |
559 ms |
56616 KiB |
testcase38.txt |
AC |
529 ms |
54060 KiB |
testcase39.txt |
AC |
526 ms |
54048 KiB |
testcase40.txt |
AC |
549 ms |
55088 KiB |
testcase41.txt |
AC |
538 ms |
55140 KiB |
testcase42.txt |
AC |
551 ms |
56488 KiB |
testcase43.txt |
AC |
528 ms |
54204 KiB |