Problem P1351 [联合权值] record 用时: 99ms 空间: 13068KB(12.76MB) 代码长度: 3.96KB 提交记录: R9883701 注: 使用了 o1 优化 o2 优化 o3 优化 use-v4 快读快输 Solution 60 or 70 pts 直接爆搜,枚举每两个距离为 2 的点,然后记录答案. 写法优异可以拿走 70 pts , 但是 use-v4 几乎铁定是 60 pts . 代码...就不放了,有兴趣的可以看: 60 pts(use-v4) 7…
我们枚举中间点,当连的点数不小于2时进行处理 最大值好搞 求和:设中间点 i 所连所有点权之和为sum 则对于每个中间点i的联合权值之和为: w[j]*(sum-w[j])之和 #include<cstdio> #include<cstring> using namespace std; ,N=,M=; int head[M],next[M],to[M],du[N],a[N],size; int w[N],n,sum,ss,m1,m2,ans1,ans2; void uni(int…
题目来源:洛谷P1351 思路 由题意可得图为一棵树 在一棵树上距离为2的两个点有两种情况 当前点与其爷爷 当前点的两个儿子 当情况为当前点与其爷爷时比较好操作 只需要在传递时不仅传递父亲 还传递爷爷即可 当情况为两个儿子时 其实我们只需要的是所有儿子中比较大的两个 所以我们在遍历当前点的所有儿子时取出最大值和次大值即可 最后的最大值为两种情况中的最大值 最后的答案为当前点的所有儿子权值的平方减去每个儿子本身的平方(容斥原理)+2*最大*次大(乘以2是因为每种情况有正反两种) 代码 #inclu…
传送门 Description 无向连通图 \(G\) 有 \(n\) 个点, \(n-1\) 条边.点从 \(1\) 到 \(n\) 依次编号,编号为 \(i\) 的点的权值为 \(W_i\) ,每条边的长度均为 \(1\) .图上两点 \((u, v)\) 的距离定义为 \(u\) 点到 \(v\) 点的最短距离.对于图 \(G\) 上的点对 \((u, v)\) ,若它们的距离为 \(2\) ,则它们之间会产生 \(W_v \times W_u\) 的联合权值. Input 第一行包含 \…
P1351 联合权值 想刷道水题还交了3次.....丢人 (1.没想到有两个点都是儿子的状况 2.到处乱%(大雾)) 先dfs一遍处理出父亲$fa[x]$ 蓝后再一遍dfs,搞搞就出来了. #include<iostream> #include<cstdio> #include<cstring> #define re register using namespace std; ; int max(int &a,int &b){return a>b?…
联合权值 题目描述 无向连通图 GG 有 nn 个点,n-1n−1 条边.点从 11 到 nn 依次编号,编号为 ii 的点的权值为 W_iWi​,每条边的长度均为 11.图上两点 (u, v)(u,v) 的距离定义为 uu 点到 vv 点的最短距离.对于图 GG 上的点对 (u, v)(u,v),若它们的距离为 22,则它们之间会产生W_v \times W_uWv​×Wu​ 的联合权值. 请问图 GG 上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少? 输入输出…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - Vijos1906 题意概括 有一棵树,每一个节点都有一个权值w[i].下面说的x,y都是该树中的节点. 对于点对(x,y),x,y,保证x和y距离为2,那么他们就可以联合,会产生w[x]*w[y]的联合权值. 注意:点对(x,y)和(y,x)是不同的. 现在要回答两个问题: 1. 所有可以联合的点对的最大联合权值. 2. 对于所有不同的点对(x,y),求联合权值和,答案对10007取模. 题解 在一棵树上…
题目描述 无向连通图 G 有 n 个点,n−1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 Wi​,每条边的长度均为 1.图上两点 (u,v) 的距离定义为 u 点到 v 点的最短距离.对于图 G 上的点对 (u,v),若它们的距离为 2,则它们之间会产生Wv​×Wu​ 的联合权值. 请问图 G 上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少? 输入输出格式 输入格式: 第一行包含 1 个整数 n. 接下来 n−1 行,每行包含 2 个用空格隔开的…
联合权值 洛谷中可找到 题目传送门https://www.luogu.org/problemnew/show/P1351 这题我就得了70分(TLE)  GG了 就是遍历它孩子的孩子(爷爷和孙子),然后相乘: ps:这样会有很多重复,TLE #include<cstdio> #include<iostream> #define maxn 200000+10 using namespace std; int max(int x,int y) { return x>y?x:y;…
P1351 联合权值 题目描述 无向连通图 \(G\) 有 \(n\) 个点,\(n-1\) 条边.点从 \(1\) 到 \(n\) 依次编号,编号为 \(i\) 的点的权值为 \(W_i\)​,每条边的长度均为 \(1\).图上两点 \((u, v)\) 的距离定义为 \(u\) 点到 \(v\) 点的最短距离.对于图 \(G\) 上的点对 \((u, v)\),若它们的距离为 \(2\),则它们之间会产生\(W_v \times W_u\)​ 的联合权值. 请问图 \(G\) 上所有可产生联…