P1351 联合权值

#include <bits/stdc++.h>
using namespace std;
const int maxn = 200005;
vector<int> son[maxn];
int v[maxn], s[maxn], w[maxn];
int main() {
	freopen("input.in", "r", stdin);
	int n, m;
	cin >> n;
	memset(s, 0,sizeof(s));
	for(int i = 1; i <= n-1; i++) {
		int x, y;
		cin >> x >> y;
		son[x].push_back(y);
		son[y].push_back(x);
	}
	for(int i = 1; i <= n; i++) {
		cin >> v[i];
	}	
	int first[maxn], second[maxn];
	for(int i = 1; i <= n; i++) {
		vector<int>::iterator it;
		for(it = son[i].begin(); it != son[i].end(); it++) {
			s[i] += v[*it];
			if(v[*it] > first[i]) { second[i] = first[i];first[i] = v[*it];} 
			else if(v[*it] > second[i]) second[i] = v[*it];
		}
	}
	int maxx = 0, sum = 0;
	for(int i = 1; i <= n; i++) maxx = max(maxx,first[i] * second[i]);
	for(int i = 1; i <= n; i++) {
		vector<int>::iterator it;
		for(it = son[i].begin(); it != son[i].end(); it++) {
			w[i] += ((s[i] - v[*it]) * v[*it])%10007;
		}
		sum += w[i] % 10007;
	}
	cout << maxx << ' ' << sum % 10007 << endl;
}

posted on   蒟蒻konjac  阅读(138)  评论(0编辑  收藏  举报

编辑推荐:
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
· ASP.NET Core 模型验证消息的本地化新姿势
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Ai满嘴顺口溜,想考研?浪费我几个小时
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示