比赛 2025暑期集训第4场 评测结果 ATTTTTTTTT
题目名称 外卖 最终得分 10
用户昵称 小福鑫 运行时间 26.997 s
代码语言 C++ 内存使用 3.43 MiB
提交时间 2025-07-05 11:09:20
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int n,m,ans,a[1001],u,v;
bool vi[1001];
vector<int> e[1001];
void dfs(int t,int l,int w){
//	cout<<t<<" "<<l<<" "<<w<<endl;
	if(t>=m){
		ans=max(w,ans);
		return;
	}
	for(int i=0;i<e[l].size();i++){
		dfs(t+1,e[l][i],w);
	}
	if(vi[l]){
		for(int i=0;i<e[l].size();i++){
			dfs(t+1,e[l][i],w);
		}
	}
	else{
		vi[l]=1;
//		cout<<t<<endl;
		dfs(t+1,l,w+a[l]);
		vi[l]=0;
	}
	return ;
	
}
int main(){
	freopen("food.in","r",stdin);
	freopen("food.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	for(int i=1;i<n;i++){
		cin>>u>>v;
		e[u].push_back(v);
		e[v].push_back(u);
	}
	dfs(0,1,0);
	cout<<ans;
}