首页 > 其他分享 >CF884G Tree Wights

CF884G Tree Wights

时间:2023-07-12 22:44:49浏览次数:39  
标签:CF884G le 边权 Tree 距离 Wights 邻点

CF884G Tree Wights

给定一棵 \(n\) 个点的树,给定 \(d_1,d_2,\cdots,d_{n-1}\),其中 \(d_i\) 表示 \(i\) 到 \(i+1\) 在树上简单路径的距离,问能否构造每条边的边权都是正整数,并构造一种解。
\(2\le n\le 10^5\),\(1\le d_i\le 10^{12}\)。

本题难点在于两次转化。

首先,如果题目中的距离距离不是加法距离,而是 xor 距离,问题就变得简单了。

具体的,我们可以首先求出 \(1\) 与任意一点的距离 \(w(1,i)=\bigoplus_{j=1}^{i-1}d_j\),然后就相当于求出了 \(1\) 与每个邻点的之间的边权,然后又可以求出每个邻点与其邻点的边权,往下递推。

第二,考虑 xor 与加法的关系,xor 与加法是模 \(2\) 同余的,那么可以对 \(d\) 从低到高二进制下按位考虑,每次做一遍上面的问题,然后通过倍增可以求出任意 \(i\) 与 \(i+1\) 之间的距离,用 \(d_i\) 减去这个距离,删掉最后一位继续处理即可。

时间复杂度 \(O(n\log n\log V)\)。

标签:CF884G,le,边权,Tree,距离,Wights,邻点
From: https://www.cnblogs.com/UperFicial/p/17548930.html

相关文章

  • Java TreeMap 介绍与使用
    介绍TreeMap是Java集合框架中的一个类,它实现了SortedMap接口,可以存储键值对,并按照键的自然顺序或者指定的比较器进行排序。TreeMap的底层是一棵红黑树,这是一种自平衡的二叉搜索树,可以保证在插入,删除,查找等操作中的时间复杂度为O(logn)。使用要使用TreeMap,我们需要导入......
  • AtCoder Regular Contest 164 E Segment-Tree Optimization
    洛谷传送门AtCoder传送门妙妙题。我们考虑如何方便地描述一棵广义线段树。不难想到使用断点描述,即对于一个结点\([l,r]\),它的左右儿子分别是\([l,mid],[mid+1,r]\),其中\(mid\in[l,r-1]\),然后把一层缩成一个\(2^{d-1}\)的序列,每一层都是上层对应结点的\(mid......
  • Sum in Binary Tree
    SuminBinaryTreetimelimitpertest1secondmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputVanyareallylikesmath.Onedaywhenhewassolvinganothermathproblem,hecameupwithaninterestingtree.Thistree......
  • Cesium中的QuadtreeTile.js类
    /***Asingletileina{@linkQuadtreePrimitive}.**@aliasQuadtreeTile*@constructor*@private**@param{Number}options.levelThelevelofthetileinthequadtree.*@param{Number}options.xTheXcoordinateofthetileinthequadtree......
  • 「BalticOI 2011 Day2」Tree Mirroring 题解
    本文网址:https://www.cnblogs.com/zsc985246/p/17539182.html,转载请注明出处。题目大意现在有一棵树\(T\),复制一个完全相同的\(T'\),并将这两棵树的叶子节点全部对应合并在一起,形成一个图,我们称这种图为对称图。给定一个图,判断它是否为对称图。\(3\len,m\le10^5\)思路......
  • [学习笔记] 启发式合并 & DSU on Tree
    一、启发式合并启发式合并多用于合并两个集合,现在有这样一个问题:现在给定\(n\)个集合,第\(i\)个集合初始只有\(\{i\}\),要支持集合的合并操作。如果我们暴力合并,时间复杂度会是\(O(n^2)\)的。参考并查集的按秩合并,考虑将小的集合合并到大的集合上。考虑计算时间复杂度,容......
  • 使用zTree如何实现悬停事件
    zTree是功能强大的树插件,但本身没有提供鼠标悬停事件,不过我们可以通过jquery实现,同时我们可以自定义一个延迟操作,避免不小心滑过的情况下触发不必要的操作vartimer;//声明一个全局量用于存储延迟操作的定时器$("#tree").on("mouseover",".node_name",function(){var......
  • 【构造,树】【Loj】Loj6669 Nauuo and Binary Tree
    2023.7.3ProblemLink交互库有一棵\(n\)个点的二叉树,你每次可以询问两个点之间的距离,猜出这棵二叉树。\(n\le3000\),询问次数上限\(30000\)。首先给你距离一定是先把每个点的深度问出来,确定一个大致的考虑顺序。然后我们开始仔细思考“距离”这个条件怎么用。发现询问两个......
  • 【线段树】 HDOJ 5274 Dylans loves tree
    用dfs序构建线段树,然后用lca求出两点间路径的xor和。。。#include<iostream>#include<queue>#include<stack>#include<map>#include<set>#include<bitset>#include<cstdio>#include<algorithm>#include<cstring>#include......
  • 【并查集】 HDOJ 4786 Fibonacci Tree
    就是求出搞成最小生成树的最少白边和最多白边的数量。。。。#include<iostream>#include<queue>#include<stack>#include<map>#include<set>#include<bitset>#include<cstdio>#include<algorithm>#include<cstring>#include<......