提出 #73720660


ソースコード 拡げる

#include<bits/stdc++.h>
#define LL long long
#define PII pair<int, int>
#define PLI pair<LL, int>
#define PLL pair<LL, LL>
using namespace std;
const int N = 2e5, inf = 1e9;
vector<vector<int> > g;
bool vis[N + 5];
int n, siz[N + 5], mimx, tsiz, rt;
void get_siz(int u = rt, int p = 0) {
	tsiz++;
	for (auto v : g[u]) {
		if (vis[v] || v == p) continue;
		get_siz(v, u);
	}
}
void get_rt(int u, int p = 0) {
	siz[u] = 1;
	int ret = 0;
	for (auto v : g[u]) {
		if (vis[v] || v == p) continue;
		get_rt(v, u);
		siz[u] += siz[v];
		ret = max(ret, siz[v]);
	}
	ret = max(ret, tsiz - siz[u]);
	if (ret < mimx) {
		rt = u;
		mimx = ret;
	}
}
int getd(int u, int p, int d = 1) {
	int ret = 0, cnt = 0;
	for (auto v : g[u]) if (v != p) cnt++;
	if (cnt >= 2) ret = d;
	if (cnt <= 2) return ret;
	for (auto v : g[u]) if (!vis[v] && v != p) {
		ret = max(ret, getd(v, u, d + 1));
	}
	return ret;
}
int ans = 0;
void calc(int u) {
	int cnt = 0, mx = 0;
	for (auto v : g[u]) cnt++;
	if (cnt >= 2) ans = max(ans, 1);
	for (auto v : g[u]) if (!vis[v]) {
		int ret = getd(v, u);
		if (cnt >= 3) ans = max(ans, ret + 1);
		if (cnt >= 4) {
			ans = max(ans, mx + 1 + ret);
			mx = max(mx, ret);
		}
	}
}
void devide() {
	vis[rt] = 1;
	calc(rt);
	for (auto v : g[rt]) {
		if (vis[v]) continue;
		mimx = inf;
		get_rt(v);
		tsiz = 0;
		get_siz();
		devide();
	}
}

inline void solve() {
	cin >> n; ans = 0;
	g.clear(); g.resize(n + 1);
	memset(vis, 0, sizeof vis);
	for (int i = 1; i < n; i++) {
		int u, v; cin >> u >> v;
		g[u].push_back(v);
		g[v].push_back(u);
	}
	mimx = inf;
	get_rt(1);
	tsiz = 0;
	get_siz();
	devide();
	cout << ans << "\n";
}
signed main() {
	ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
	int t = 1;
	cin >> t;
	while (t--) solve();
	return 0;
} 

提出情報

提出日時
問題 F - Centipede Graph
ユーザ C202627yehan
言語 C++23 (GCC 15.2.0)
得点 500
コード長 1864 Byte
結果 AC
実行時間 518 ms
メモリ 19164 KiB

コンパイルエラー

./Main.cpp: In function 'void calc(int)':
./Main.cpp:46:19: warning: unused variable 'v' [-Wunused-variable]
   46 |         for (auto v : g[u]) cnt++;
      |                   ^

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 1
AC × 47
セット名 テストケース
Sample 00_sample_00.txt
All 00_sample_00.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 02_random_00.txt, 02_random_01.txt, 02_random_02.txt, 02_random_03.txt, 02_random_04.txt, 02_random_05.txt, 02_random_06.txt, 02_random_07.txt, 03_path_00.txt, 03_path_01.txt, 03_path_02.txt, 03_path_03.txt, 03_path_04.txt, 03_path_05.txt, 03_path_06.txt, 03_path_07.txt, 03_path_08.txt, 03_path_09.txt, 04_star_00.txt, 04_star_01.txt, 04_star_02.txt, 05_uni_00.txt, 05_uni_01.txt, 05_uni_02.txt, 05_uni_03.txt, 05_uni_04.txt, 05_uni_05.txt, 06_bi-ternary_00.txt, 06_bi-ternary_01.txt, 06_bi-ternary_02.txt, 06_bi-ternary_03.txt, 06_bi-ternary_04.txt, 06_bi-ternary_05.txt, 06_bi-ternary_06.txt, 06_bi-ternary_07.txt, 06_bi-ternary_08.txt, 06_bi-ternary_09.txt, 06_bi-ternary_10.txt, 06_bi-ternary_11.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3792 KiB
01_small_00.txt AC 85 ms 3732 KiB
01_small_01.txt AC 88 ms 3760 KiB
01_small_02.txt AC 88 ms 3976 KiB
01_small_03.txt AC 87 ms 3908 KiB
01_small_04.txt AC 87 ms 3788 KiB
01_small_05.txt AC 88 ms 3756 KiB
01_small_06.txt AC 58 ms 3884 KiB
02_random_00.txt AC 85 ms 4036 KiB
02_random_01.txt AC 88 ms 3836 KiB
02_random_02.txt AC 85 ms 3836 KiB
02_random_03.txt AC 443 ms 13928 KiB
02_random_04.txt AC 286 ms 9528 KiB
02_random_05.txt AC 343 ms 11832 KiB
02_random_06.txt AC 334 ms 10936 KiB
02_random_07.txt AC 271 ms 8796 KiB
03_path_00.txt AC 95 ms 3952 KiB
03_path_01.txt AC 98 ms 3828 KiB
03_path_02.txt AC 144 ms 4656 KiB
03_path_03.txt AC 149 ms 4512 KiB
03_path_04.txt AC 215 ms 9240 KiB
03_path_05.txt AC 262 ms 9636 KiB
03_path_06.txt AC 484 ms 18384 KiB
03_path_07.txt AC 415 ms 19164 KiB
03_path_08.txt AC 518 ms 18468 KiB
03_path_09.txt AC 411 ms 17956 KiB
04_star_00.txt AC 58 ms 16072 KiB
04_star_01.txt AC 37 ms 4440 KiB
04_star_02.txt AC 59 ms 11396 KiB
05_uni_00.txt AC 70 ms 3912 KiB
05_uni_01.txt AC 87 ms 4324 KiB
05_uni_02.txt AC 138 ms 8556 KiB
05_uni_03.txt AC 199 ms 15408 KiB
05_uni_04.txt AC 194 ms 15324 KiB
05_uni_05.txt AC 194 ms 15460 KiB
06_bi-ternary_00.txt AC 203 ms 15280 KiB
06_bi-ternary_01.txt AC 134 ms 8168 KiB
06_bi-ternary_02.txt AC 59 ms 3888 KiB
06_bi-ternary_03.txt AC 209 ms 15280 KiB
06_bi-ternary_04.txt AC 146 ms 7940 KiB
06_bi-ternary_05.txt AC 60 ms 4052 KiB
06_bi-ternary_06.txt AC 211 ms 15396 KiB
06_bi-ternary_07.txt AC 153 ms 8796 KiB
06_bi-ternary_08.txt AC 59 ms 3836 KiB
06_bi-ternary_09.txt AC 262 ms 15152 KiB
06_bi-ternary_10.txt AC 142 ms 7204 KiB
06_bi-ternary_11.txt AC 60 ms 3844 KiB