求调 ABC368D
  • 板块学术版
  • 楼主Bpds1110
  • 当前回复16
  • 已保存回复16
  • 发布时间2024/8/24 21:44
  • 上次更新2024/8/25 09:41:44
查看原帖
求调 ABC368D
864150
Bpds1110楼主2024/8/24 21:44

WA 了 15。

#include <bits/stdc++.h>
typedef long long ll;

const int N = 2e5 + 10; 
int n, k;
bool dp[N]; 
std::vector <int> G[N]; 

void dfs(int u, int pre) {
	for (auto v : G[u]) {
		if (v == pre) continue ;
		dfs(v, u);
		dp[u] |= dp[v];
	}
	
	return void(); 
}

int main() {

//	freopen(".in", "r", stdin);
//	freopen(".out", "w", stdout);

	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr);
	std::cout.tie(nullptr);

	std::cin >> n >> k;
	int rt = 0; 
	for (int i = 1; i < n; ++ i) {
		int u, v; std::cin >> u >> v;
		G[u].push_back(v);
		G[v].push_back(u);
		rt = u; 
	} 
	for (int i = 1; i <= k; ++ i) {
		int tmp; std::cin >> tmp;
		dp[tmp] = 1; 
	}
	dfs(rt, 0); 
	int ans = 0;
	for (int i = 1; i <= n; ++ i) ans += dp[i];
	std::cout << ans << "\n"; 

	return 0;
}

2024/8/24 21:44
加载中...