首页 > 其他分享 >CF1844G Tree Weights

CF1844G Tree Weights

时间:2023-08-16 18:33:50浏览次数:39  
标签:推出 log CF1844G Tree 异或 Weights LCA

题面传送门

这个真的很容易想到吗?

首先定 \(1\) 为根,设每个点的深度是 \(d_i\),则两个点之间的距离是 \(d_{i}+d_{i+1}-2d_{LCA(i,i+1)}\)。题目中相当于给出了 \(n-1\) 个方程和 \(n-1\) 个限制,要解出一个 \(n-1\) 元的方程。因为限制是从 \(1\to n-1\) 给出的,所以不可能包含,因此解至多只有一个。所以可以不用管限制,将这个解解出来之后看是否满足限制即可。

然后就开始人类智慧了。你会发现每个方程中假设我们已经知道了 \(d_i\),在推出 \(d_{i+1}\) 的过程中还需要知道 \(d_{LCA(i,i+1)}\),这不好。但是如果给出的是边权的异或和而不是和,那么这就好办。边权的异或和就是 \(d_i\operatorname{xor}d_{i+1}\),这样就可以推出所有 \(d\)。

最离谱的事情就是这个和位运算一点没有关系的题要按位考虑。考虑最低位,在不考虑进位的情况下等价于异或,因此我们可以将每个\(d\) 的最低位推出来。之后在每条路径中刨除最低位的贡献之后,次低位就可以看成异或,仍然可以推出来。因此可以在 \(O(n\log n+n\log V)\) 时间内推出所有的 \(d\),之后 check 是平凡的。

submission

标签:推出,log,CF1844G,Tree,异或,Weights,LCA
From: https://www.cnblogs.com/275307894a/p/17635926.html

相关文章

  • vue-treeselect 校验失败添加红框
    需求vue-treeselect校验及清除校验这篇介绍了用@input在校验失败时显示校验信息。但还需要同时显示红色边框。如下图所示:解决办法思路:动态绑定类名,校验失败时切换类名,更改边框颜色。子组件SelectTree二次封装vue-treeselect:组件SelectTree<template><divclass=......
  • 二叉搜索树(BST,binary search tree)
    对于静态查找可以用二分查找,将查找时间复杂度降到log2n。其中,虽然数据存储在线性的结构里,但我们事先对数据进行了处理,在查找的顺序过程中运用到判定树这样的结构,将线性上的查找过程转变为了在类似树上面的查找过程,其查找的效率就是树的高度。但如果查找的集合不仅有查找还......
  • Tree Distances I
    TreeDistancesI思路先考虑只算节点\(1\)的答案,我们发现如果要每个节点都这么算一次的话,绝对会我们发现,这种算法的瓶颈在于必须要每个节点都算一遍,而每算一遍都需要\(O(n)\),所以才会超时,那么可以思考如何快速的求出答案(总共\(O(1)\)是不肯能的,别妄想了),对于相连的两个点,似......
  • Experience Replay with Likelihood-free Importance Weights
    发表时间:2020文章要点:这篇文章提出LFIW算法用likelihood作为experience的采样权重(likelihood-freedensityratioestimator),reweightexperiencesbasedontheirlikelihoodunderthestationarydistributionofthecurrentpolicy,这种方式鼓励让经常访问的状态有更小的误差......
  • WPF 由TreeView想到的 DataTemplate,HierarchicalDataTemplate
    DataTemplate简而言之,解决的就是后台代码中的类以怎么样的形式展现在xaml前台代码中的问题。所以DataTemplate一般都要指定DataType,一般放在resource中,而HierarchicalDataTemplate是一种特殊的DataTemplate,它指定一个ItemsSource,当自身属性是列表时,有次序的在前台展示下去。以......
  • LeetCode 7022——熟悉TreeSet数据结构及常用方法的使用
    LeetCode7022.限制条件下元素之间的最小绝对差题目描述:给你一个下标从 0 开始的整数数组 nums 和一个整数 x 。请你找到数组中下标距离至少为 x 的两个元素的 差值绝对值 的 最小值 。换言之,请你找到两个下标 i 和 j ,满足 abs(i-j)>=x 且 abs(nums[i......
  • Binary Tree Preorder Traversal
    SourceGivenabinarytree,returnthepreordertraversalofitsnodes'values.NoteGivenbinarytree{1,#,2,3},1\2/3return[1,2,3].ExampleChallengeCanyoudoitwithoutrecursion?题解1-递归递归版很好理解,首先判断当前节点......
  • Subtree 题解
    Subtree题目大意给定一颗树,你可以选出一些节点,你需要对于每个点求出在强制选这个点的情况下所有选择的点联通的方案数,对给定模数取模。思路分析对于这种求树上每一个点方案数的题目,首先考虑换根DP。强制嵌定树根为\(1\),设\(f_i\)表示在\(i\)的子树中选点,\(i\)强制选,所......
  • SourceTree git报错 这是一个无效源路径/URL的
    首先根据网上查询的资料排查账号信息,账号信息正常,git客户端也安装了 解决问题:git支持未打开  未打开的样式类似下面 ......
  • dus on tree学习笔记
    前言dusontree就像其实就像是暴力,但是通过选择正确的顺序,使得暴力变得更加的快速。算法思路查看题目给出一颗n个节点的树,每个节点有一个颜色,询问你没个节点的子树中有多少中颜色。显然,我们知道暴力扫的话是枚举每个点,再暴力去找他的子树,显然在暴力的情况下是\(O(n......