当前位置: 首页 > news >正文

题解:AcWing 511 联合权值

【题目来源】

AcWing:511. 联合权值 - AcWing题库

【题目描述】

无向连通图G有\(n\)个点,\(n-1\)条边。点从\(1\)\(n\)依次编号,编号为\(i\)的点的权值为\(W_i\),每条边的长度均为\(1\)。图上两点\((u, v)\)的距离定义为\(u\)点到\(v\)点的最短距离。对于图G上的点对\((u,v)\),若它们的距离为\(2\),则它们之间会产生\(W_u\times W_v\)的联合权值。

请问图G上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少?

【输入】

第一行包含\(1\)个整数 \(n\)。接下来\(n-1\)行,每行包含\(2\)个用空格隔开的正整数\(u,v\),表示编号为\(u\)和编号为\(v\)的点之间有边相连。

最后\(1\)行,包含\(n\)个正整数,每两个正整数之间用一个空格隔开,其中第\(i\) 个整数表示图G上编号为\(i\)的点的权值为\(W_i\)

【输出】

输出共\(1\)行,包含\(2\)个整数,之间用一个空格隔开,依次为图G上联合权值的最大值和所有联合权值之和。由于所有联合权值之和可能很大,输出它时要对\(10007\)取余。

【输入样例】

5
1 2
2 3
3 4
4 5
1 5 2 3 10

【输出样例】

20 74

【解题思路】

image

image

【算法标签】

《AcWing 511 联合权值》 #DFS#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 200010, M = N * 2, mod = 10007; // 定义常量
int h[N], e[M], ne[M], w[N], idx; // 图的邻接表存储
int n; // 节点数量
int ans_max, ans_sum; // 存储最终结果// 添加边的函数
void add(int a, int x) {e[idx] = x;       // 存储边的终点ne[idx] = h[a];   // 将新边插入到节点 a 的邻接表头部h[a] = idx++;     // 更新节点 a 的邻接表头指针
}// 计算最大值和和的函数
void cal() {for (int u = 1; u <= n; u++) { // 遍历每个节点long long t1 = 0, t2 = 0;  // t1 存储邻接节点权值和,t2 存储邻接节点权值平方和int max1 = 0, max2 = 0;    // max1 和 max2 存储邻接节点权值的最大和次大值// 遍历节点 u 的所有邻接节点for (int i = h[u]; i != -1; i = ne[i]) {int j = e[i]; // 邻接节点 jt1 += w[j];   // 累加邻接节点的权值t2 += w[j] * w[j]; // 累加邻接节点权值的平方// 更新最大值和次大值if (w[j] > max2) {if (w[j] > max1) {max2 = max1; // 原来的最大值变为次大值max1 = w[j]; // 更新最大值} else {max2 = w[j]; // 更新次大值}}}// 更新全局最大值ans_max = max(ans_max, max1 * max2);// 更新全局和,公式为 (t1 * t1 - t2) % modans_sum = (ans_sum + (t1 * t1 - t2) % mod) % mod;}
}int main() {memset(h, -1, sizeof(h)); // 初始化邻接表头指针为 -1cin >> n; // 读取节点数量// 读取边的信息并构建图for (int i = 0; i < n - 1; i++) {int a, b;cin >> a >> b; // 读取边的两个端点add(a, b); // 添加边 a -> badd(b, a); // 添加边 b -> a}// 读取每个节点的权值for (int i = 1; i <= n; i++)cin >> w[i];// 计算最大值和和cal();// 输出结果cout << ans_max << " " << ans_sum;return 0;
}

【运行结果】

5
1 2
2 3
3 4
4 5
1 5 2 3 10
20 74
http://www.jsqmd.com/news/394505/

相关文章:

  • 2026年信号发生器厂家推荐:深圳市新进时科技,高频/电视/脉冲/函数/北斗等全品类供应 - 品牌推荐官
  • 2026村田电容实力供应商推荐:村田现货商/车规电容/代理/实力供应商全解析 - 品牌推荐官
  • 2026年闭式/循环/不锈钢冷水塔厂家推荐:山东昊峰机电设备有限公司全系产品解析 - 品牌推荐官
  • 2026年真空炉/马弗炉/熔块炉/管式炉/箱式炉生产厂家推荐:洛阳力宇窑炉全系工业窑炉解决方案 - 品牌推荐官
  • 2026年移动货架厂家推荐:无锡真木物流设备,常温/防爆/电动/冷库等全系移动货架供应 - 品牌推荐官
  • 2026年北斗/GPS定位工牌厂家推荐:上海物和电子科技,智能电子/人员定位工牌全场景覆盖 - 品牌推荐官
  • 2026年皮带输送机厂家推荐:河南坤威机械制造,全封闭/输煤/爬坡/垂直等输送机全系供应 - 品牌推荐官
  • 2026年振动电机厂家推荐:河南豫通电机股份公司,全铜/卧式/立式/侧板/频繁启动振动电机全系供应 - 品牌推荐官
  • YOLO26涨点改进 | 全网独家首发、特征融合改进篇 | ICME 2024 | 引入DASI维度感知选择性集成模块,动态平衡高层语义信息与低层细节信息,助力红外小目标检测、遥感目标检测,高效涨点
  • 2026年废气处理设备厂家推荐:新疆新远大环保科技,喷漆房废气/VOC/RTO处理全方案 - 品牌推荐官
  • 2026年2月市场口碑好的原木定制公司推荐,排行有亮点,全屋定制/原木定制,原木定制企业口碑推荐榜 - 品牌推荐师
  • 2026年垃圾站设备厂家推荐:湖南玉桓环保科技分体/地埋/移动压缩/整体式垃圾站全系供应 - 品牌推荐官
  • 2026卷板机厂家实力推荐:南通威锋重工机械,上辊/自动/液压/数控/四辊卷板机全系供应 - 品牌推荐官
  • 一键对接上海智推时代:官方联系方式完整汇总 - 速递信息
  • 2026年发泡塞材料厂家推荐:山东泰瑞丰新材料有限公司,木盖/耐酒精/耐精油发泡塞材料全系供应 - 品牌推荐官
  • 闲置盒马鲜生礼品卡别丢!京顺回收让你轻松变现 - 京顺回收
  • 2026年环卫服务企业推荐:湖南仁仁洁集团,环卫外包/招标/保洁/一体化全场景覆盖 - 品牌推荐官
  • 2026年金属钝化液厂家推荐:惠州市佳一美金属表面处理材料有限公司,铜材/不锈钢/铝材钝化液全系供应 - 品牌推荐官
  • 破解成人学历提升痛点:弘智5S全链路方法论如何实现高效拿证? - 速递信息
  • 企业采购AI培训服务的供应商评估体系与选型方案
  • 2026年冰柜贴画定制厂家推荐:青岛辉明广告制品有限公司,商用/饮料/啤酒/雪糕贴画全品类覆盖 - 品牌推荐官
  • 2026年验电器厂家实力推荐:石家庄科锐电气声光/伸缩/防雨/感应低压验电器全品类覆盖 - 品牌推荐官
  • 文科生转行AI必备技能清单(非硬核编程版)
  • 2026年电缆回收厂家推荐:厦门洲祥物资回收有限公司,低压/通讯/铝/铜/高压电缆回收全覆盖 - 品牌推荐官
  • 非技术管理层推动企业AI转型的系统化实施策略
  • 2026年上海GEO系统服务商推荐:上海二满文化传媒,专注geo大模型/aigeo广告/优化全链路服务 - 品牌推荐官
  • 2026年小型压路机厂家推荐:山东奔马工程机械,多款小型压路机适配市政/道路/工程压实需求 - 品牌推荐官
  • Java - 多线程
  • 寒假比赛补题
  • 2026年落地/多功能/自动升降/遥控晒衣架厂家推荐:常州富阁尔鑫饰日用品全系产品解析 - 品牌推荐官