CF1656E Equal Tree Sums题解

2023-05-16

其实这道题不难

首先假设 1 1 1 是根节点

我看到这道题第一反应就是直接假设整棵树权值之和是某一个定值,然后再dfs造每一个 a x a_x ax 。(其实到这里就可以a了,但是不优雅)

我们发现,由于去掉某一个节点之后,它所有的儿子所在的子树之和都和它上面那一部分之和是一样的,于是我们就有了: s u m x ′ s   s o n = s u m 1 − s u m x sum_{x's\ son}=sum_1-sum_x sumxs son=sum1sumx 其中( x ≠ 1 x\ne1 x=1,下同)

又因为: a x = s u m x − ∑ s u m x ′ s   s o n a_x=sum_x-\sum sum_{x's\ son} ax=sumxsumxs son

结合一下就成了 a x = s u m 1 − d e g x × ( s u m 1 − s u m x ) a_x=sum_1-deg_x\times(sum_1-sum_x) ax=sum1degx×(sum1sumx)

当我们令 s u m 1 = 0 sum_1=0 sum1=0 时,发现:

  • s u m x ′ s   s o n = − s u m x sum_{x's\ son}=-sum_x sumxs son=sumx
  • a x = d e g x ∗ s u m x a_x=deg_x*sum_x ax=degxsumx

我们再令 s u m x = ( − 1 ) d e p x sum_x=(-1)^{dep_x} sumx=(1)depx ,就可以发现 a x = d e g x ( − 1 ) d e p x a_x=deg_x(-1)^{dep_x} ax=degx(1)depx

不难发现,这个结论在 x = 1 x=1 x=1 时也成立

再手动构造几组小数据后发现构造方法正确,就可以优雅的写代码了,芜湖起飞!

最后献上我其丑无比的代码:

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,ans[N];
vector<int>ed[N];
void dfs(int x,int fa,int k){
  ans[x]=ed[x].size()*k;
  for(int y:ed[x])if(fa!=y)dfs(y,x,-k);
}
void solve(){
  cin>>n;
  for(int i=1;i<=n;i++)ed[i].clear();
  for(int i=1,u,v;i<n;i++){
    cin>>u>>v;
    ed[u].emplace_back(v);
    ed[v].emplace_back(u);
  }
  dfs(1,1,1);
  for(int i=1;i<=n;i++)cout<<ans[i]<<" ";
  cout<<'\n';
}
int main(){
  int t;
  cin>>t;
  while(t--)solve();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CF1656E Equal Tree Sums题解 的相关文章

  • 使用目录树和过滤填充 TTreeView

    在 Lazarus 0 9 28 2 项目上我有一个TTreeView 与名字DirTree在我的表格上 frmConvert 但我想用所有目录树填充它 因为C 像这样 C 目录树 http i imagehost org 0185 cdi
  • D3.js 在径向树中的元素之间添加链接(分层边缘捆绑元素)

    几个月前 我尝试过使用 d3 js 将分层边缘捆绑和径向 Reingold Tilford 树结合起来 https stackoverflow com questions 39150514 d3 js combining hierarchi
  • 静止搜索性能

    这是一个双重问题 我组装了一个简单的国际象棋引擎 它执行 Alpha Beta 搜索 最后执行静止搜索 静止搜索正在影响性能 问题是 这是可以接受的性能影响吗 如果不是 那么应该采取什么措施来解决这个问题 下图给出了性能影响 请注意 这些统
  • sparql 主题的完整树

    例如 当我有一个人图时 例如约翰和约翰有工作地址 家庭地址 电话号码 关系等 是否有可能在不知道它是什么的情况下检索与 john 及其子类相关的所有内容 这样我就可以检索例如以下内容 John lt address lt house num
  • 如何在 HTML 表格中呈现树?

    我正在尝试在 HTML 表中显示树结构 它基本上是您提到某个网站的人员列表 但您可以展开每个人员并查看他们也提到的人员 仅 2 或 3 级 我还显示了每个人的许多信息 因此我使用了一个包含几列的表格 我想知道显示此内容的最佳方式是什么 以便
  • 从物化路径构建 JSON 树

    我计划在 MongoDB 中使用物化路径来表示树 并且需要将物化路径转换回 JSON 树 前任 物化路径 var input id 0 path javascript id 1 path javascript database id 2 p
  • 没有重复子项的树

    Using anytree https pypi python org pypi anytree我制作了这样的树 A B C D F B C E G 有没有办法删除所有重复的子级并将其变成下面的树 对所有可能级别的子级进行递归 A B C
  • 使用STL的红黑树内部实现

    我知道我的STL g 4 x x附带 使用红黑树来实现地图等容器 是否可以直接使用STL内部的红黑树 如果是这样 怎么办 如果不是 为什么不 为什么STL不公开红黑树 令人惊讶的是 我无法使用谷歌找到答案 编辑 我正在研究使用红黑树作为插入
  • Java 中的树实现

    我得到了以下树 然后我们被告知使用last child previous sibling方法来改变这三个的实现 结果如下 我现在正在研究 Java 实现 以在这棵树上执行不同的功能 我们有一个 Tree 接口和一个 TreeNode 接口
  • 如何使用 php 列出目录以在文件夹中导航,而不使用 javascript? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在寻找这个 PHP 函数 列出目
  • 如何在 Clojure 中遍历一棵树,同时收集每个节点节点的值?

    我想创建一个函数来收集二叉树中每个节点的值 在 ClojureDocs 中 我发现了几个用于遍历树 图的函数 例如 tree seq prewalk 和 postwalk https clojuredocs org clojure core
  • Visual Studio代码侧边栏垂直引导线(自定义侧边栏)

    有人知道 Visual Studio 代码的扩展可以像 netbeans 一样在侧边栏 用于文件和文件夹 上显示垂直指南吗 或者vscode中有一些设置吗 Netbeans 快照 https i stack imgur com CFJsw
  • 创建二叉树的时间复杂度

    我正在尝试从提供的源创建一棵树 要添加到树中的 2 个节点 以及应添加这 2 个新闻节点的节点 为了找到该节点在树中的位置 我使用了中序遍历 该遍历的时间复杂度为 O n 因此 如果要在树中添加 n 个节点 则创建整个树的时间复杂度为 O
  • 单击父节点时检查树的子节点 [ExtJS]

    我想知道如何在单击 ExtJs 中的特定节点时检查树的同级节点 我已经给了每个节点的 id 我可以访问单击的节点的 id 那么我如何继续自动检查子节点 有人请帮助我 or any other way of getting hands on
  • d3树计算所有孩子的数量

    我有一个基于以下内容的 d3 树 http bl ocks org mbostock 1093025 http bl ocks org mbostock 1093025 我如何计算所有孩子的数量 我已经尝试过这个 但是它计算了树中的所有行
  • 提取给定节点的所有父节点

    我正在尝试使用以下命令提取每个给定 GO Id 节点 的所有父级EBI RDF sparql 端点 https www ebi ac uk rdf services sparql 我是根据this https stackoverflow c
  • Java hibernate/jpa 如何创建自相关的动态通用实体

    我想使用 JPA hibernate 创建动态和通用的超类 它将针对每个层次结构模型进行扩展 例如 角色 页面 目录 部门 权限 树 我想使用递归和java反射来创建这个对象动态树 它应该看起来像这样 该实体应该引用自身实体 我希望它是完全
  • 如何使用KDTrees实现最近邻搜索?

    所以 我正在实施一个KD Tree http en wikipedia org wiki Kd tree进行最近邻搜索 我已经构建了树部分 但我认为我没有完全理解搜索部分 关于遍历树来搜索邻居 维基百科文章如下 Starting with
  • 使用 Java 进行树可视化 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个库来生成图形或树 例如组织图表 该库应该能够从该图中生成纯图像 有谁知道一个好的 希望开源
  • 如何展平解析树并存储在字符串中以进行进一步的字符串操作 python nltk

    我正在尝试从树结构中获取扁平树 如下所示 我想将整个树放在一个字符串中 就像没有检测到坏树错误一样 S NP SBJ NP DT The JJ high JJ seven day PP IN of NP DT the CD 400 NNS

随机推荐

  • 并查集——洛谷P3367

    题目描述 如题 xff0c 现在有一个并查集 xff0c 你需要完成合并和查询操作 输入输出格式 输入格式 xff1a 第一行包含两个整数N M xff0c 表示共有N个元素和M个操作 接下来M行 xff0c 每行包含三个整数Zi Xi Y
  • Web项目通过webservice编写一个接口,部署在远程服务器上

    在我的上一片文章中 xff0c 我在本地新建了一个普通的类来编写WebService xff0c 使用终端类 Endpoint 发布这个WebService xff0c 以此来实现让其他类调用这个接口 xff0c 实现接口中定义的功能 通过
  • ubuntu与win10共享LE蓝牙鼠标

    类似的教程网上有很多 xff0c 大部分是找到蓝牙设备目录下info文件中的 linkKey 中的key值复制到win10下注册表中 xff0c 但是对于蓝牙5 0或LE设备来说 xff0c 是没有linKey的 xff0c 这里我也参考了
  • FileZilla搭建FTP服务器图解教程,并允许外网访问NAT内网

    FTP是用来在两台计算机之间传输文件 xff0c 是Internet中应用非常广泛的服务之一 FTP服务是网络中经常采用的资源共享方式之一 FTP协议有PORT和PASV两种工作模式 xff0c 即主动模式和被动模式 今天我分享一个最近我自
  • 十进制转换八进制(C语言基础)

    题目描述编程 xff0c 输入一个 xff11 xff10 进制正整数 xff0c 然后输出它所对应的八进制数 输入无输出无样例输入10样例输出12 include lt stdio h gt int main int num m 61 0
  • 【Godot】对 Godot 节点设计的思考

    对 Godot 中节点设计的思考 单个节点的功能设计的想法 xff0c 体会 Godot 的设计思想 低耦合 设计单个节点可复用的节点时 xff0c 调用方法尽量只对当前节点可获取到的变量或方法进行使用 xff0c 比如我写一个可以控制 K
  • 【Godot】行为树(一)了解与设计行为树代码

    行为树介绍 行为树是个节点树 xff0c 父节点通过不断遍历子节点 xff0c 根据不同类型的节点执行不同的分支 最终调用叶节点执行功能 行为树也不难理解 xff0c 他就像代码逻辑一样 xff0c 只是用节点的方式展现出来 xff0c 而
  • 【Godot 4.0】一个简单的匿名方法的使用lambda

    Godot 4 0 beta3 Godot 4 0 中添加了 lambda 表达式 xff0c 匿名方法等很多方便的特性 xff0c 这里我写个用于扫描目录下所有文件的功能 可以看到代码非常简洁 span class token keywo
  • aur报错(错误:一个或多个文件没有通过有效性检查)

    当我们从aur里安装软件时 xff0c 有时会出现这种报错 xff08 如安装deepin wine wechat xff09 61 61 gt 错误 xff1a 一个或多个文件没有通过有效性检查 xff01 Error downloadi
  • Java使用不同方式获取两个集合List的交集、补集、并集(相加)、差集(相减)

    1 明确概念 首先知道几个单词的意思 xff1a 并集 61 union 交集 61 intersection 补集 61 complement 析取 61 disjunction 减去 61 subtract 1 1 并集 对于两个给定集
  • 【VTK】VTK框选表面拾取三角面片——通过观察者命令模式

    VTK框选拾取三角面片 最近需要实现拾取三角面片的交互功能 xff0c 看了官方示例和网友分享 xff0c 都是使用vtkInteractorStyleRubberBandPick搭配vtkAreaPicker 但是具体实现方法都是选择继承
  • 【VTK】VTK框选表面拾取面片——仅选中前表面

    VTK框选表面拾取面片 仅选中前表面 接上一篇 VTK框选表面拾取三角面片 通过观察者命令模式 上一篇最后遗留一个问题 xff0c 框选表面后 xff0c 会把模型背面的面片也一起选中 所以这篇内容是解决该问题的 效果预览 功能说明 通过鼠
  • GoDB开发踩坑记

    前言 前几天因为leancloud网速太慢所以自己写了一个go语言数据库 xff0c 想部署到我的树莓派上 正文 我在写的时候发现了一些神奇的操作 golang 把js变量的表达方式字符串转换成go变量 可以先把它嵌入到一个json字符串中
  • 通过Java反射获得对象里面的所有字段名以及字段对应的值

    首先我们有一个对象类 span class token keyword package span com span class token punctuation span xuzihui span class token punctuat
  • GoDB开发踩坑记(代码实现)

    前言 之前写了一篇GoDB开发踩坑记但是内容有些不全 xff0c 所以来补充一下 所以没看过GoDB开发踩坑记的可以先看一下那篇文章 正文 golang encode josn 把map string interface 转换为json字符
  • vim配置

    众所周知 xff0c vim是一个非常牛逼的文本编辑器 xff0c 但是他的界面很丑 xff0c 而且在终端下面也不能美化多少 但是 xff01 在windows下有一个叫做gvim的玩意儿 xff0c 在mac下有一个叫macvim的东东
  • 全网最简洁Archlinux 安装教程

    Archlinux 安装教程 先从mirrors ustc edu cn下载archlinux安装镜像 然后下载刻录工具etcher Windows版 xff1a Windows版 Linux版 xff1a Linux版 Mac版 xff1
  • CF6E Exposition题解

    前置知识 st 表 xff1a 用于求静态的区间最值问题 不会的同学可以看wsyear巨佬的这篇文章https blog csdn net wsyear article details 114334351 spm 61 1001 2014
  • 最简单的柯西不等式证明

    柯西不等式证明 柯西不等式 xff0c 是形式如下的不等式 a i 2
  • CF1656E Equal Tree Sums题解

    其实这道题不难 首先假设 1 1 1 是根节点 我看到这道题第一反应就是直接假设整棵树权值之和是某一个定值 xff0c 然后再dfs造每一个 a x