题解 NOIP2014 提高组-联合权值
题解 NOIP2014 提高组-联合权值
基本思路:以每个点为中转点,则与之相邻的点组成的点对都可产生联合权值,并且全覆盖。
主要总结一下两种求权值和的思路:
思路1(容斥):记与 \(u\) 相邻的点的集合为 \(A\),则点 \(u\) 产生的贡献为
\]
对于每个中转点 \(u\) ,枚举 \(v\) 的同时直接求这两个式子,循环外结算。
void dfs(int u,int f){
ll tot=0,cz=0,cmax=-1,dmax=-1;
for(auto v:g[u]){
tot+=w[v];
cz=(cz+w[v]*w[v]%mod)%mod;
if(w[v]>cmax) dmax=cmax,cmax=w[v];
else if(w[v]>dmax) dmax=w[v];
if(v!=f) dfs(v,u);
}
ans=(ans+tot*tot%mod-cz)%mod;
mx=max(dmax*cmax,mx);
}
思路2(在线统计答案):在枚举到 \(v_i\) 时,考虑先让它和 \(v_{1 \sim i-1}\) 组合,最后输出时将答案乘2即可。
void dfs(int u,int f){
ll tot=0,cmax=-1,dmax=-1;
for(auto v:g[u]){
ans=(ans+tot*w[v])%mod;
tot+=w[v];
if(w[v]>cmax) dmax=cmax,cmax=w[v];
else if(w[v]>dmax) dmax=w[v];
if(v!=f) dfs(v,u);
}
mx=max(dmax*cmax,mx);
}
- 重点记录一下思路2,没有尝试过这种思路。
题解 NOIP2014 提高组-联合权值的更多相关文章
- 【学术篇】luogu1351 [NOIP2014提高组] 联合权值
一道提高组的题..... 传送门:题目在这里.... 现在都懒得更自己的blog了,怕是太颓废了_ (:з」∠) _ 好久没做题了,手都生了.(好吧其实是做题方面手太生了) 这题我都不想讲了,把代码一 ...
- NOIP2014提高组 联合权值(距离为2的树形dp)
联合权值 题目描述 无向连通图 GG 有 nn 个点,n-1n−1 条边.点从 11 到 nn 依次编号,编号为 ii 的点的权值为 W_iWi,每条边的长度均为 11.图上两点 (u, v)(u, ...
- [NOIP2014提高组]联合权值
题目:洛谷P1351.Vijos P1906.codevs3728.UOJ#16. 题目大意:有一个无向连通图,有n个点n-1条边,每个点有一个权值$W_i$,每条边长度为1.规定两个距离为2的点i和 ...
- [NOIp2014] luogu P1351 联合权值
哎我博 4 了. 题目描述 无向连通图 GGG 有 nnn 个点,n−1n−1n−1 条边.点从 111 到 nnn 依次编号,编号为 iii 的点的权值为 WiW_iWi,每条边的长度均为 111 ...
- [NOIP2014] 提高组 洛谷P1351 联合权值
题目描述 无向连通图G 有n 个点,n - 1 条边.点从1 到n 依次编号,编号为 i 的点的权值为W i ,每条边的长度均为1 .图上两点( u , v ) 的距离定义为u 点到v 点的最短距离. ...
- Noip2014 提高组 T2 联合权值 连通图+技巧
联合权值 描述 无向连通图 G 有 n 个点,n-1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 WiWi, 每条边的长度均为 1.图上两点(u, v)的距离定义为 u 点到 v 点的 ...
- NOIP2014提高组第二题联合权值
还是先看题吧: 试题描述 无向连通图 G 有 n 个点,n-1 条边.点从 1 到 n 依次编号,编号为 i 的点的权值为 Wi ,每条边的长度均为 1.图上两点(u, v)的距离定义为 u 点到 ...
- 【NOIP2014提高组】联合权值
https://www.luogu.org/problem/show?pid=1351 既然是一棵树,就先转化成有根树.有根树上距离为2的点对,路径可能长下面这样: 枚举路径上的中间点X. 第一种情况 ...
- 题解【luoguP1351 NOIp提高组2014 联合权值】
题目链接 题意:给定一个无根树,每个点有一个权值.若两个点 \(i,j\) 之间距离为\(2\),则有联合权值 \(w_i \times w_j\).求所有的联合权值的和与最大值 分析: 暴力求,每个 ...
- NOIP 提高组 2014 联合权值(图论???)
传送门 https://www.cnblogs.com/violet-acmer/p/9937201.html 题解: 相关变量解释: int n; int fa[maxn];//fa[i] : i的 ...
随机推荐
- 和xshell和crt说再见,认识了一款55k star多端跨平台终端神器,强大酷炫
一.Tabby简介 Tabby(以前称为Terminus)是一款高度可配置的终端仿真器.SSH 和串行客户端.开源且跨平台,支持在Windows.macOS和Linux系统下使用. 源码下载 http ...
- 掌握Java面向对象OOP篇(一)
掌握面向对象OOP篇(一) 边学边记 -- OOP(Object Orientated Programing) 1. 为什么要引入面向对象? 原因:封装.继承.多态 举个例子理解面向对象代码的好处: ...
- portainer控制多个docker
打开docker的远程访问(参考下方博客) 觉得不安全可以配置 使用 TLS 加密 https://www.cnblogs.com/hongdada/p/11512901.html 使用新版本port ...
- 低版本安卓home assistant网页浏览器
试了很久 一直有问题的一点 , 使用普通浏览器加载不出来登录界面 只能加载出icon 然后就没反应了 考虑到了webview的问题 但是没想到安卓5.0之前是固定且不可升级的webview 从 And ...
- Maven 打 JAR 包
项目和依赖分别打入独立 JAR 包 使用 Maven Jar Plugin 插件,可以将项目自身单独打成一个 JAR 包,项目依赖的 JAR 包统一放置到指定目录. 在项目的 pom.xml 中添加如 ...
- YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架
前言 今天大姚给大家分享一款基于.NET8开源.免费(MIT License)功能强大的权限管理及快速开发框架,支持前后端分离,项目架构易于扩展,是中小企业的首选:YuebonNetCore. 核心设 ...
- 《SpringBoot事务》单机mybatis事务控制
一.场景再现 我们同时操作两张表及以上,一张表操作成功后,第二张表操作失败,此时需要回滚上一次的操作. 或者两次操作都成功,但后续业务处理的时候异常,此时需要回滚前面的所有数据库操作. 二.代码 1 ...
- 用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」
在开始介绍上周热门开源项目之前,要插播一条开源新闻:Nginx 已正式迁移至 GitHub. 近日,Nginx 官方宣布将 Nginx 开源项目,从 Mercurial 迁移至 GitHub 代码托管 ...
- SQL Server Aggregate Functions
SUM 如果 row count = 0 返回的是 NULL 而不是 0 哦, 如果要 0 可以使用 ISNULL 来处理 如果其中一些 row 是 NULL, 那无所谓, 它只会 SUM 数字出来 ...
- sign与unsigned的原理、数据存储与硬件的关系
目录 关键字unsigned和signed 数据在计算机中的存储 原码 与 补码的转化与硬件关系 原,反,补的原理: 整型存储的本质 变量存取的过程 类型目前的作用 十进制与二进制快速转换 大小端字节 ...