洛谷1351 联合权值

题解:洛谷 P1351 [NOIP 2014 提高组] 联合权值 等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。上联合权值的最大值和所有联合权值之和。由于所有联合权值之和可能很大,输出它时要对。上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少?个正整数,每两个正整数之间用一个空格隔开,其中第。个整数,之间用一个空格隔开,依次为图。个用空格隔开的正整数。本文分享的必刷题目是从。#普及# #树形DP# 阅读详情

原题地址

https://www.luogu.org/problem/show?pid=1351

枚举 数论 贪心

一开始想到的又不是标解,跑了跑发现T了4个点……然后对照题解发现确实太暴力了,只有枚举连个优化都没有……

解题思路

60分算法:

枚举每个点,然后枚举和这个点相连的两个点,求联合权值的最大值,并加入和(ans)中(先乘2再加,因为(i,j)和(j,i)算两对),显然时间复杂度爆了。

100分算法:

①预处理出每个点相连的点中的最大值和次大值,二者的联合权值一定比以该点为中心的两个点的其他情况更优,然后再枚举每个点(仅有一条边相连的除外)中心点,可以求出第一问;

②用数学知识我们可以知道,若a,b,c,d,e,f都与i相连,则以i为中心的所有可行方案的联合权值之和为sum=a*b+a*c+a*d+……+e*f, 其实就是每个点的权值乘以可以联合的节点的所有权值之和, 所有权值之和,所以假设每个节点相连的所有点的权值和为sum[i],则以i为中心点的权值和为ans=a*(sum[i]-a)+b*(sum[i]-b)+……+f*(sum[i]-f),枚举每条边就可以求出最终解了。

参考代码

#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<cstdio>
using namespace std;
const long long p=10007;
long longw[200005],r[200005],v[200005],tmp[200005];
long long max1[200005],max2[200005],sum[200005];
int num=0;
 
struct mc
{
     intx,y,ne;
}e[400005];
 
void put(int x,int y)
{
     num++;
     e[num].x=x;
     e[num].y=y;
     e[num].ne=v[x];
     v[x]=num;
}
 
int main()
{
     int n;
     scanf("%d",&n);
     memset(r,0,sizeof(r));
     intx,y;
     for(int i=1;i<n;i++)
     {
         scanf("%d%d",&x,&y);
         put(x,y);
     }
     for(int i=1;i<=n;i++)
     {
         scanf("%d",&w[i]);
        
     }
     memset(max1,0,sizeof(max1));
     memset(max2,0,sizeof(max2));
     memset(sum,0,sizeof(sum));
     for(inti=1;i<n;i++)
     {
         intx=e[i].x;
         inty=e[i].y;
         sum[x]+=w[y];
         sum[y]+=w[x];
         if(w[y]>max1[x])
         {
              max2[x]=max1[x];
              max1[x]=w[y];
         }
         elseif (w[x]>max2[y]) max2[y]=w[x];
         if(w[x]>max1[y])
         {
              max2[y]=max1[y];
              max1[y]=w[x];
         }
         elseif (w[x]>max2[y]) max2[y]=w[x];
     }
     longlong mx=0,ans=0;
     for(int i=1;i<=n;i++)
     {
         if(!max2[i]) continue;
         if(max1[i]*max2[i]>mx) mx=max1[i]*max2[i];
     }
     for(int i=1;i<n;i++)
     {
         intx=e[i].x;
         inty=e[i].y;
         ans=(ans+(sum[x]-w[y])*w[y]%p)%p;
         ans=(ans+(sum[y]-w[x])*w[x]%p)%p;
     }
     cout<<mx<<''<<ans;
     return0;
}


PyQt5 + HFSS:给你的仿真脚本做个专属GUI界面(零基础搭建指南) 本文详细介绍了如何使用PyQt5为HFSS仿真脚本创建专属GUI界面,适合零基础用户快速上手。通过Python二次开发,实现参数可视化调整、进度实时监控等功能,大幅提升团队协作效率。文章涵盖环境配置、界面设计、HFSS集成到打包部署的全流程,是仿真工程师提升工作效率的实用指南。 阅读详情

相关推荐

从零开始:用ZEMAX设计双高斯照相物镜的完整流程(附55mm焦距实例)

本文详细介绍了使用ZEMAX设计双高斯照相物镜的完整流程,特别针对55mm焦距实例进行了深入解析。从初始结构选择、参数设置到优化策略和像质分析,逐步指导读者掌握这一经典光学设计方法。通过具体实例展示了如何实现卓越的像差校正,适用于35mm相机标准镜头等应用场景。

onion的博客 703

洛谷1351

https://www.luogu.org/problemnew/show/P1351 如果简单地去计算像w[a]*w[b]+w[a]*w[c]+w[a]*w[d]+w[b]*w[a]+w[b]*w[c]+w[b]*w[d]+w[c]*w[a]+w[c]*w[b]+w[c]*w[d]+w[d]*w[a]+w[d]*w[b]+w[d]*w[c]一样的复杂算式,就会超时,可以简化为和的平方减平方的和来...

weixin_40736501的博客 158

发那科机器人Modbus通讯配置全攻略:从IP设置到信号调试

本文详细介绍了发那科机器人Modbus通讯的配置方法,从基础认知到IP设置、端口配置、信号调试及故障排查。重点讲解了UOP和DI/DO信号的配置技巧,帮助工程师快速实现机器人与PLC的稳定通讯,提升自动化系统效率。

weixin_27872611的博客 620

【洛谷 P1351】联合权值【暴力】

解题思路 联合的两个节点距离为二,所以必定有一个中转点。所以,我们可以枚举每一个中转点。 假设每个中转点周围有两个点,权值分别为a、b,则联合权值为2ab=(a+b)2−(a2+b2)2ab=(a+b)^2-(a^2+b^2)2ab=(a+b)2−(a2+b2), 若有三个点,权值分别为a、b、c,则联合权值为2ab+2bc+2ac=(a+b+c)2−(a2+b2+c2)2ab+2bc+2ac=(a+b+c)^2-(a^2+b^2+c^2)2ab+2bc+2ac=(a+b+c)2−(a2+b2+c2)...

在人间贩卖声音 274

美团mtgsig 3.1.0算法还原:从加密入口到d1生成的完整链路拆解

本文详细拆解了美团mtgsig 3.1.0签名算法的完整逆向过程。通过定位加密入口函数eH,理清a6、a5、a8到d1的生成依赖链,并运用插桩技术,在JSVMP混淆环境下逐步还原了核心参数的生成逻辑,为逆向工程实践提供了清晰的纯算还原方法论。

oo7890的博客 776

NACA0012的O型网格求解

本篇文章采用偏微分方程数值解法生成NACA0012翼型O型网格,并采用速度势方程求解绕NACA0012翼型迎角为0度时的低速不可压无粘流场。 文章目录一、求解网格1.翼型2.远场3.网格4.迭代5.求解二、求解流场1.偏微分方程2.迭代求解流场三、求解参数1.偏微分方程2.迭代求解四、导出数据 一、求解网格 1.翼型 本次求解网格和流场等采用的是NACA0012(修形)对称翼型,在NACA四位翼型中,第一位数字代表的是弯度,第二位数字代表的是弯度位置,后两位数字代表的是厚度,由于本次翼型的前两位数字都为0,

m0_50746433的博客 6675

【洛谷P1351】联合权值【数学】

数学,暴力

ssllyr 230

基于Python的网络拓扑图绘制

最近写论文画了许多图,在这里记录一些。当然,如果仅仅是展示性图片的话也可以使用visio,但是这里我仍然想探究一下如何使用pyhon画出美观的网络拓扑图。(1)根据邻接矩阵画出网络拓扑图(2)画出网络拓扑图,并对节点和链路进行表示,包括对节点和链路的标号,颜色区分,以及尺寸区分。

m0_53961910的博客 7093

洛谷 P1351 (枚举)

## 洛谷P1351 题目链接 ## 题目大意: 给你 n 个节点, n-1 条边的无向联通图。若定义(u,v)表示 u 与 v 点的最短距离,如果 (u,v)值为 2 ,则这两个点的点权之积(即 Wu * Wv)称为联合权值。 求全图中联合权值的最大值以及联合权值的总和。 分析: 1、由于是 n-1 条边且为无向联通图,很容易判断出该图是个无根树。 2、那我们可以遍历全图中所有节点,然...

diefen9380的博客 327

SAP物料主数据中的销售视图。这是一个在销售与分销模块中至关重要的核心主数据,直接关系到从报价到交货的整个销售流程

SAP物料主数据的销售视图是销售流程的核心基础,它定义了物料如何被销售、定价、开票和交付。销售视图包含五个关键控制点:1)基本销售数据控制物料销售状态;2)销售组织数据决定销售渠道和产品分类;3)通用物料数据管理销售描述和税务分类;4)交货计划控制交付参数;5)开票计划管理定价规则。这些设置直接影响销售流程顺畅度、数据准确性、客户满意度、财务合规性和业务灵活性。建议将销售视图创建纳入新产品引入流程,并建立规范的维护机制,确保业务变化时及时更新配置。

金牌架构师 666

【100%通过率】华为OD机试真题 C++ 实现【打印机队列】【2022.11 Q4 新题】

有5台打印机打印文件,每台打印机有自己的待打印队列。因为打印的文件内容有轻重缓急之分,所以队列中的文件有1~10不同的代先级,其中数字越大优先级越高。打印机会从自己的待打印队列中选择优先级最高的文件来打印。如果存在两个优先级一样的文件,则选择最早进入队列的那个文件。现在请你来模拟这5台打印机的打印过程。

MISAYAONE的博客 9943

【题解】LuoGu1351:联合权值

这道题分为两部分 求最大联合权值和求和 先想到:如果j,k是i的邻居,那么j,k距离为2,可以算联合权值 那么,最大联合权值是max{maxa[i]*maxb[i]}(1&amp;amp;amp;lt;=i&amp;amp;amp;lt;=n) maxa,maxb表示最大的两个相邻权值 接下来求和 易知,一个点i,若有邻居的权值为a1,a2,a3,……,at,那么和为a1*(a2+a3+……+at)+a2*(a1+a3+……+at)...

ModestCoder_的博客 424

基于全局和局部接受性因果特征的广义学习模型,用于在线增量机械故障诊断

本文提出了一种**因果广义学习模型(CBLM)**,用于在线增量机械故障诊断。该模型结合了**全局因果特征**(时域、频域、故障特征频率均值)和**多尺度局部因果特征**(通过扩张卷积提取),构建了一个具有**增量学习能力**的广泛学习系统(BLS)。CBLM支持**结构增量学习**(增加增强节点)和**样本增量学习**(动态更新权重),无需重新训练整个模型,显著提高了计算效率和诊断精度。在两个滚动轴承数据集上的实验表明,CBLM在诊断准确性和训练时间上均优于传统深度学习模型,适用于在线实时故障诊断。

huanghm88的专栏 387

洛谷P1351 [NOIP 2014 提高组] 联合权值

上联合权值的最大值和所有联合权值之和。由于所有联合权值之和可能很大,输出它时要对。上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少?首先考虑哪些点可以凑成一个联合点对?由于只要距离为2,那显然对于一个节点。个正整数,每两个正整数之间用一个空格隔开,其中第。可得他是一棵树,思考如何求解出最大值与和。但我们发现联合点对是有序的,那我们是否输出。保证一定存在可产生联合权值的有序点对。的其余所有子节点组成联合点对,也可以和。本例输入的图如上所示,距离为。分的好成绩,这是为何?

yjfyjfyjf54188的博客 818

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

洛谷 P1351 联合权值 树状图 链式前向星

题目链接: https://www.luogu.com.cn/problem/P1351 参考博客: https://modeststarlight.blog.luogu.org/solution-p1351 链式前向星:特别特别推荐再学习一下链式前向星 https://blog.youkuaiyun.com/acdreamers/article/details/16902023 思路: 1:树...

aiwo1376301646的博客 332

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

洛谷——P1351 联合权值

https://www.luogu.org/problem/show?pid=1351 题目描述 无向连通图G 有n 个点,n - 1 条边。点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 。图上两点( u , v ) 的距离定义为u 点到v 点的最短距离。对于图G 上的点对( u, v) ,若它们的距离为2 ,则它们之间会产生Wu×Wv 的联合权值。 ...

agcozdwdfvds08078的博客 88

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

洛谷 P1351 [NOIP 2014 提高组] 联合权值-普及/提高-

NOIP2014 提高组 D1T2。

weixin_37253733的博客 1449

洛谷1351 联合权值

洛谷1351 联合权值 原题链接 交题记录 20:47 第1次提交 70' 输入文件无法下载(lg大坑比),下载了输出发现第二问萎了,怀疑是取膜的问题。 20:50 第2次提交 70' 我就笑笑不说话。。。两份代码只差了一句取膜,结果新交的时间空间都变大,然后从AWAAAAAWW变成AWAAAWAAWA 咦,输出爆负了。。。 取了膜的减一个没取膜的是不是会爆负。。。 20:53 第三次提交 ...

weixin_30745553的博客 89

洛谷 P1351 联合权值

洛谷 P1351 联合权值题目题目描述无向连通图G 有n 个点,n - 1 条边。点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 。图上两点( u , v ) 的距离定义为u 点到v 点的最短距离。对于图G 上的点对( u, v) ,若它们的距离为2 ,则它们之间会产生Wu×Wv 的联合权值。请问图G 上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值

faojie的博客 354

P1351 联合权值【洛谷算法习题】

核心逻辑:将距离为2的点对转化为共享中间节点的邻接点对,通过数学公式与最值维护线性求解总和与最大值。关键操作:链式前向星存树、平方和公式计算总权值、维护最大次大权值更新全局最大值、全程取模处理总和。效率保障:仅一次遍历所有节点与边,无嵌套循环,线性复杂度完美适配二十万节点的数据规模。

Pretty Boy Fox的博客 326

【洛谷】P1351 联合权值

都要算进去),所以我们只需要对每个中转点,求其所有邻居的权值的和以及平方和,套公式算一下联合权值之和,然后再求个总和即可。个邻居,则存在以其为中转点的联合权值,最大的联合权值即为权值最大的两个邻居的乘积;上所有可产生联合权值的有序点对中,联合权值最大的是多少?上联合权值的最大值和所有联合权值之和。由于所有联合权值之和可能很大,输出它时要对。个正整数,每两个正整数之间用一个空格隔开,其中第。保证一定存在可产生联合权值的有序点对。个整数,之间用一个空格隔开,依次为图。枚举中转点,对于每个中转点,有。

数学、算法爱好者的博客 196

洛谷P1351 [NOIP2014 提高组] 联合权值【树形DP】【绿】

Date:2022.04.04 题目描述 无向连通图 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 个用空格隔开的

lppppppppps的博客 381

【题解】洛谷P1351 联合权值(dfs、LCA)

这道题一开始啥也没想就用最短路写,才40分,然后发现自己对寻找最大值取模了,改了之后60分。。然后又发现n个点,n-1条边,其实这个图就是一棵树,每一个点到其余点的最短路有且只有一条,完全可以用dfs对每个点进行扩展,扩展两层找到点然后进行操作。。虽然看起来更简便了,但还是60分,所以我们得想更好的方法。 为啥它让你找距离为2的点而不是距离为3、4……的点呢?我们可以发现,对于一个中心结点,它的...

Rem_Inory的博客 440

【洛谷P1351】联合权值

链接 这个题让我们求得是最大联合权值和联合权值之和。 先来讨论较简单的,联合权值之和。 当需要求两个点之间的某些关系时,往往可以将其转化成一个点的问题。 比如这个题,就可以通过枚举中间点,通过一些式子算出答案(如下图) 指出的那一个点,以它为中点的答案之和就是它周围一圈的点所有组合的答案之和,这一点很好想到。 枚举的话是不太好的,如果是一个200000的菊花图,就完美的TLE了。 ...

Sakura_Chiyo的博客 393

洛谷P1351 联合权值

70分暴力做法:枚举每一个点和与其距离为2的点,直接计算联合权值并求最大值,累加求和,复杂度为O(n^3) 暴力代码: #include<cstdio> #include using namespace std; int head[2000005],n,x,y,ecnt=1,w[2000005],ans1,maxn,maxm; long long ans2; struct list{ ...

qq_40461481的博客 220

[洛谷] P1351 联合权值

题目 题目描述 无向连通图G 有n 个点,n - 1 条边。点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 。图上两点( u , v ) 的距离定义为u 点到v 点的最短距离。对于图G 上的点对( u, v) ,若它们的距离为2 ,则它们之间会产生Wu×Wv 的联合权值。 请问图G 上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少? 题目...

AAA_Ljw 219
上一篇: 洛谷1525 关押罪犯
下一篇: 模板-----------线段树
zero_from
博客等级 码龄10年 11粉丝 61原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值