首页 技术 正文
技术 2022年11月22日
0 收藏 332 点赞 3,850 浏览 1182 个字

【题目链接】

点击打开链接

【算法】

如果(u,v)的距离为2,那么有两种可能 :

1.u和v为祖孙关系

2.u和v为兄弟关系

树形DP即可,详见代码

【代码】

#include<bits/stdc++.h>
using namespace std;
#define MAXN 200000
#define MOD 10007int i,u,v,N,ans1,ans2;
int w[MAXN+],max1[MAXN+],max2[MAXN+],fa[MAXN+],sum[MAXN+];
vector<int> E[MAXN+];template <typename T> inline void read(T &x) {
int f=; x=;
char c = getchar();
for (; !isdigit(c); c = getchar()) { if (c == '-') f = -f; }
for (; isdigit(c); c = getchar()) x = x * + c - '';
x *= f;
}template <typename T> inline void write(T x) {
if (x < ) { putchar('-'); x = -x; }
if (x > ) write(x/);
putchar(x%+'');
}template <typename T> inline void writeln(T x) {
write(x);
puts("");
}inline void dfs(int root) {
int i,son,cnt=;
for (i = ; i < E[root].size(); i++) {
son = E[root][i];
if (son != fa[root]) {
fa[son] = root;
dfs(son);
cnt = (cnt + w[son] * w[son]) % MOD;
ans1 = max(ans1,w[root]*max1[son]);
ans2 = (ans2 + (w[root] * sum[son] * ) % MOD) % MOD;
sum[root] = (sum[root] + w[son]) % MOD;
if (w[son] > max1[root]) {
max2[root] = max1[root];
max1[root] = w[son];
} else if (w[son] > max2[root])
max2[root] = w[son];
}
}
ans1 = max(ans1,max1[root]*max2[root]);
ans2 = (ans2 + (sum[root] * sum[root] % MOD - cnt + MOD) % MOD) % MOD;
}int main() { read(N);
for (i = ; i < N; i++) {
read(u); read(v);
E[u].push_back(v);
E[v].push_back(u);
}
for (i = ; i <= N; i++) read(w[i]);
dfs(); write(ans1); putchar(' '); write(ans2); puts(""); return ;}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,993
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,507
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,350
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,135
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,768
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,845