codeforces segments 1858d trees

Codeforces 1458F - Range Diameter Sum

先考虑直径的一些求法:最普遍的想法肯定是从点集中任意一个点开始 DFS 找到距其最远的点,再一遍 DFS 找到距离你找到的那个点最远的点。但是放在这个题肯定是不太行的。因此考虑一种更常用的求法:**合并**。更直观地说:我们定义树上一个圆 $(x,r)$ 表示距离 $x$ 点 $\le r$ 的所有 ......
Codeforces Diameter 1458F Range 1458

Symmetric Tree

Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center). ```python class Solution(object): def isS ......
Symmetric Tree

Codeforces[CF1036B]Diagonal Walking v.2题解

# 题目大意 很明显,这道题就是求 k 步之内到达点 $(a,b)$ ,然后尽量走对角线,求能走对角线的最大值。 # 做题思路 首先明白一个事实,即一个对角线可以通过增加一步而抵达点不变,如图: ![image](https://img2023.cnblogs.com/blog/3175066/20 ......
题解 Codeforces Diagonal Walking 1036B

el-tree需要自定义双击事件触发选择节点

单击事件 onclick="xxxx" 双击事件 ondblclick="xxxx" ``` data() { return { numTime: 0, } }, methods: { // 自定义双击事件 handleNodeClick() { this.numTime++ setTimeout( ......
节点 el-tree 事件 tree el

CF1843E Tracking Segments

# CF1843E Tracking Segments VP 的时候本来摆烂了,结果快结束的时候想到了做法(没时间敲了 qwq)。这里提供一种和已有题解不同的思路。 我们发现,对于每个修改,我们可以将该点的值修改为这次修改的时间,未修改的点则赋为 $n+1$。这样转化后,区间合法的条件就是区间内小于 ......
Tracking Segments 1843E 1843 CF

dsu on tree 学习笔记

# dsu on tree 学习笔记 ## 引入 dsu 是并查集的缩写,然鹅本算法和并查集没啥关系。当然,dsu on tree 也有中文名字:树上启发式合并。也就是说,这个算法是用于处理一些树上信息的合并的。 dsu on tree 和莫队一样,都是优雅的暴力。优雅是因为思想很优雅,暴力是因为所 ......
笔记 tree dsu on

Coloring Tree (牛客多校) (BFS序列妙用+ f(n)-f(n+1)+ 组合数学)

题目大意: 给一个树, 然后 有k 种颜色可以给树上色 权值是 2个相同颜色节点的最短距离 问 让权值为 D 的方案数 题解: 首先 要让2个节点为D, 怎么处理呢? 利用 f(D)- f(D+1) 即可 因为问的是 2个相同颜色点的最短距离, 因此直接bfs用一个bfs序列 然后在bfs一下, 因 ......
组合数学 妙用 序列 Coloring 数学

Same Tree

Given the roots of two binary trees p and q, write a function to check if they are the same or not. Two binary trees are considered the same if they a ......
Same Tree

el-tree 树的全部展开和收起

https://blog.csdn.net/weixin_46156770/article/details/122696483 ......
el-tree tree el

【CF1842F】Tenzing and Tree

# 题目 题目链接:https://codeforces.com/contest/1842/problem/F 给定一棵 $n$ 个点的树,你可以选择其中 $k$ 个点染黑,定义一条边的价值为割去这条边之后,剩下两颗树的黑点数量差;一棵树的价值为所有边的价值之和。 对于 $k\in [0,n]$,求 ......
Tenzing 1842F 1842 Tree and

Codeforces Round 881 (Div. 3)

~~失踪人口回归~~ VP 打的 ### A. Sasha and Array Coloring ``` int n; int a[maxN]; void solve(){ n=rd(); fp(i,1,n) a[i]=rd(); sort(a+1,a+n+1); ll ans=0; for(int ......
Codeforces Round 881 Div

Codeforces 1648F - Two Avenues

为啥会有人觉得这是板子题啊/tuu 先对图边双连通分量缩个点,然后考虑对两条边分情况讨论: - 两个桥边,显然答案就是经过这两个桥的路径数量之和,排序取前两大的即可。 - 一个桥边加一个非桥边,答案是经过那个桥边的路径数量,显然桥边数量 $\ge 2$ 肯定不用考虑这种情况,桥边数量 $=1$ 另外 ......
Codeforces Avenues 1648F 1648 Two

Binary Tree Inorder Traversal

Given the root of a binary tree, return the inorder traversal of its nodes' values. Example 1: ``` Input: root = [1,null,2,3] Output: [1,3,2] ``` Exam ......
Traversal Inorder Binary Tree

CodeForces 605E Intergalaxy Trips 题解

## 题意 > 有一张 $n$ 个点的有向完全图,边 $i \to j$ 有 $p_{i,j}$ 的概率出现($p_{i,i}=1$)。你要从 $1$ 开始,每天可以走一条出边或留在原地,求最优策略下走到 $n$ 的期望天数。输出小数(不取模)。 > $n \le 10^3$ ## 思路 设 $f( ......
题解 Intergalaxy CodeForces Trips 605E

Codeforces 1787H - Codeforces Scoreboard(平衡树优化 dp)

令 $c_i=b_i-a_i$,等价于我们钦定一个排列 $p$,最小化 $\sum \min(p_ik_i,c_i)$,拿 $\sum b_i$ 减去之就是答案。 我们钦定一些 $i$ 满足 $p_ik_iY.k;} }a[MAXN+5]; struct node{int ch[2],siz,key ......
Codeforces Scoreboard 1787H 1787

Educational Codeforces Round 150 (Rated for Div. 2) A-E

[比赛链接](https://codeforces.com/contest/1841) # A ## 代码 ```c++ #include using namespace std; using ll = long long; bool solve() { int n; cin >> n; if (n ......
Educational Codeforces Round Rated 150

CF1843E Tracking Segments 做题笔记

题目链接 这题其实还行。 如果能想到二分答案就会比较简单,我们来看如何写 check 函数。 把当前所有的单点修改存起来,然后依次遍历每个区间,观察这个区间内被单点修改的点的个数是否严格大于该区间长度的一半即可。 我们需要一个支持单点修改区间查询的工具,首先想到树状数组,但前缀和就够用了。 时间复杂 ......
Tracking Segments 笔记 1843E 1843

[数据结构]Segment tree(线段树)

# Segment tree(线段树) ## 1.线段树的结构和思想 ### 线段树基本结构: ![image](https://img2023.cnblogs.com/blog/3214093/202306/3214093-20230625205909147-1113167776.png) ### ......
线段 数据结构 Segment 结构 数据

[数据结构]Binary Indexed Trees(树状数组)

# Binary Indexed Trees(树状数组) ## 1.lowbit **lowbit(x)**是x的二进制表达式中最低位的1所对应的值。比如,6的二进制是110,所以lowbit(6)=2。 **lowbit(x) = x&(-x)** ## 2.定义,查询,修改(eg1) $a1,a ......
数据结构 数组 Indexed 结构 数据

洛谷P4178 Tree 题解 树上点分治

题目链接:[https://www.luogu.com.cn/problem/P4178](https://www.luogu.com.cn/problem/P4178) 解题思路: 点分治模板题。 设当前重心为 $u$,一共有三种不同类型的路径: 1. 路径的一个端点恰好是重心 $u$; 2. 路 ......
题解 P4178 4178 Tree

CodeForces 1842E Tenzing and Triangle

[洛谷传送门](https://www.luogu.com.cn/problem/CF1842E "洛谷传送门") [CF 传送门](https://codeforces.com/contest/1842/problem/E "CF 传送门") 一个很显然的观察:选择的三角形两两重叠面积为 $0$, ......
CodeForces Triangle Tenzing 1842E 1842

CodeForces 1842G Tenzing and Random Operations

[洛谷传送门](https://www.luogu.com.cn/problem/CF1842G "洛谷传送门") [CF 传送门](https://codeforces.com/contest/1842/problem/G "CF 传送门") 原来还不会这种拆期望的套路![](//图.tk/0) ......
CodeForces Operations Tenzing Random 1842G

CodeForces 1842F Tenzing and Tree

[洛谷传送门](https://www.luogu.com.cn/problem/CF1842F "洛谷传送门") [CF 传送门](https://codeforces.com/contest/1842/problem/F "CF 传送门") 事实上自己方向一直是错的…… 绝对值不好弄,我一开始的 ......
CodeForces Tenzing 1842F 1842 Tree

B+ tree implemented in Java

## B+树相关介绍 > B+树是一棵**多叉排序树**,即每个非叶子节点可以包含多个子节点,其整体结构呈扁平化,所以其非常适配于数据库和操作系统的文件系统中。且B+树能够保持数据的稳定有序,插入和删除都拥有较稳定的**对数时间复杂度**。 **B+树的特性**:以 m 阶为例,m 表示内部节点即非 ......
implemented tree Java in

Codeforces Round 875 (Div. 2) C. Copil Copac Draws Trees

bfs解法 如果是暴力求解的话就每次都扫描一次所有边直到所有点都和树连接 优化:每次扫描我们可以发现会重复扫描那些已经存在树中的边了,因此我们可以只扫描还没有存在树中的边且是没扫过的边 对于每次更新,比如由点a已经在树中,更新点b,我们只需判断点a被更新到树中点的编号和a-b边的编号的大小,如果比它 ......
Codeforces Round Copil Copac Draws

Codeforces Round #879 (Div. 2) A-E

[比赛链接](https://codeforces.com/contest/1834) # A ## 代码 ```c++ #include using namespace std; using ll = long long; bool solve() { int n; cin >> n; int c ......
Codeforces Round 879 A-E Div

CF771C Bear and Tree Jumps

# CF771C Bear and Tree Jumps [link](https://codeforces.com/problemset/problem/771/C) 赛时脑子抽了没想出来,其实思路已经沾边了,但是……唉,还是太菜了 qwq。 ## 题意: 给你一颗有 $n$ 个点的树,和每次能走 ......
Jumps 771C Bear Tree 771

Codeforces Round 781 (Div. 2) E. MinimizOR (可持久化字典树)

[传送门](https://codeforces.com/contest/1665/problem/E) 题目大意: ** T组测试数据每组测试数据先输入一个n表示有一个长度为n的一维数组,然后输入n个数字表示这个一维数组。紧接着输入一个k表示有k个询问,对于每个询问会输入一个l和一个r表示询问数组 ......
字典 Codeforces MinimizOR Round 781

Codeforces Round 881 (Div

## E. Tracking Segments >给定初始长度为`n`,且全为`0`的序列`a`,然后给出`m`个线段,如果一个线段中`1`的个数严格大于`0`的个数,那么该线段称为一个漂亮线段,现在给出`q`次操作,每次操作使得序列`a`中位置`x`上的`0`变为`1`,请你求出第一次使得所有线段 ......
Codeforces Round 881 Div

Codeforces 1603D. Artistic Partition

题目链接:[D - Artistic Partition](https://codeforces.com/contest/1603/problem/D "D - Artistic Partition") 题目大意:要求将 $[1,n]$ 分成 $k$ 段,使得每段对应的 $c(l,r)$ 之和最小, ......
Codeforces Partition Artistic 1603