大佬帮忙看看,wa test7 看不见用例;一次都没下也说超出每日上限。
查看原帖
大佬帮忙看看,wa test7 看不见用例;一次都没下也说超出每日上限。
761908
lg942410389楼主2022/9/28 23:10
#include <bits/stdc++.h>

using namespace std;

int val[6000];
bool mark[6000];
vector<int> grid[6000];
int main() {
	int n, m, t;
	cin >> n;
	for (int i = 0; i < n; ++i) cin >> val[i];
	for (int i = 1; i < n; ++i) {
		cin >> m >> t;
		--m;
		--t;
		mark[m] = 1;
		grid[t].push_back(m);
	}
	auto dfs = [&](auto& my, int i) ->pair<int, int> {
		auto ans = make_pair(0, 0);
		auto l = make_pair(0, 0);
		auto r = make_pair(0, 0);
		if (grid[i].size() > 0) l = my(my, grid[i][0]);
		if (grid[i].size() > 1) r = my(my, grid[i][1]);
		ans.first = max(l.first, l.second) + max(r.first, r.second);
		ans.second = l.first + r.first + val[i];
		return ans;

	};
	for (int i = 0; i < n; ++i) {
		if (!mark[i]) {
			auto ans = dfs(dfs, i);
			std::cout << max(ans.first, ans.second);
			break;
		}
	}
	std::cout << flush;
	return 0;
}
2022/9/28 23:10
加载中...