各位巨佬本蒟蒻不会动态规划还有救么
查看原帖
各位巨佬本蒟蒻不会动态规划还有救么
1068108
wzytstyf楼主2025/7/30 10:16
#include<bits/stdc++.h>
using namespace std;
int a[200001];
vector<int> g[200001];
long long n,t[200001],sum=0,sum1=0,sum2=0,cnt;
int main(){
	int u,v,i,j,k;
	cin>>n;
	for(i=1;i<n;i++){
		cin>>u>>v;
		g[u].push_back(v);
		g[v].push_back(u);
	}for(i=1;i<=n;i++){
		cin>>a[i];
	}
	int mx1=0,mx2=0;
	for(i=1;i<=n;i++){
		for(j=0;j<g[i].size();j++){
			sum1+=a[g[i][j]];
			sum2+=a[g[i][j]]*a[g[i][j]]%10007;
			if(a[g[i][j]]>mx1)mx1=a[g[i][j]];
		}
		for(j=0;j<g[i].size();j++){
			if(a[g[i][j]]>mx2&&a[g[i][j]]<mx1)mx2=a[g[i][j]];
		}
		if(mx1*mx2>cnt)cnt=mx1*mx2;
		sum1=sum1*sum1%10007;
		if(g[i].size()>1)sum=(sum+sum1-sum2)%10007;
		sum1=0;
		sum2=0;
		mx1=0;
		mx2=0;
	} 
	cout<<cnt<<" "<<sum%10007;
}
2025/7/30 10:16
加载中...