CF620E New Year Tree(线段树+二进制)】的更多相关文章

题解 弱智题,二进制表示位数.合并时用| 就是被1<<x卡了好久. 要写成1ll<<x才行 #include<iostream> #include<cstring> #include<cmath> #include<cstdio> #include<algorithm> using namespace std; ; int cnt,head[N]; int id[N],size[N],cao[N],tot; int n,m…
luogu链接 题目大意: 有一个节点有颜色的树 操作1.修改子树的颜色 操作2.查询子树颜色的种类 注意,颜色种类小于60种 只有子树的操作,dfs序当然是最好的选择 dfs序列是什么,懒得讲了,自己搜吧 然后开两个数组,begin_和end_记录节点子树在dfs序数组中的开头和结尾 begin,end居然在cf是关键字,还好不是ccf,要不就死了 区间修改一个数,区间查询,线段树的傻逼操作 OK #include <iostream> #include <cstdio> #in…
线段树维护 dfs 序是显然的. 暴力建 60 个线段树太慢,于是用 bitset 优化就好了 ~ code: #include <bits/stdc++.h> #define M 63 #define N 800005 #define lson now<<1 #define rson now<<1|1 using namespace std; inline void setIO(string s) { string in=s+".in"; stri…
Count Color Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 53639   Accepted: 16153 Description Chosen Problem Solving and Program design as an optional course, you are required to solve all kinds of problems. Here, we get a new problem.…
The New Year holidays are over, but Resha doesn't want to throw away the New Year tree. He invited his best friends Kerim and Gural to help him to redecorate the New Year tree. The New Year tree is an undirected tree with n vertices and root in the v…
BZOJ 洛谷 \(dsu\ on\ tree\).(线段树合并的做法也挺显然不写了) 如果没写过\(dsu\)可以看这里. 对修改操作做一下差分放到对应点上,就成了求每个点子树内出现次数最多的颜色,这就和CF600E类似了.直接用\(dsu\). 修改某个颜色出现次数的时候,最大值不能\(O(1)\)求出,得套个\(set\),所以复杂度是\(O(q\log^2n)\).但常数并不大. 关于复杂度,在CF600E中对一个点的修改是\(O(1)\)的,而本题中可能是\(O(q)\)(一个点上挂着…
Turing Tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 4768    Accepted Submission(s): 1686 Problem Description After inventing Turing Tree, 3xian always felt boring when solving problems…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3333 Turing Tree Time Limit: 6000/3000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) 问题描述 After inventing Turing Tree, 3xian always felt boring when solving problems about intervals, because…
传送门 题意: 给出一颗含有\(n\)个结点的无根树,之后给出一个长度为\(m\)的序列,每个元素在\([1,n]\)之间. 现在序列中每个长度为偶数的区间的完成时间定义为树上最小配对方法中每对匹配点间距离的总和. 现在要求所有长度为偶数的区间的完成时间的和. 思路: 首先不妨将这颗树转化为有根树,最终不会影响答案. 注意到性质:偶数个点的两两匹配方式是唯一的,都是最深的两个点相互匹配,这样才能保证没有重复计算的边. 在子树内部直接计算不好算,要考虑很多东西(一开始就想偏了QAQ).因为匹配方式…
传送门 题意: 给出一颗以\(1\)为根的有根树,每个结点有个颜色\(c_i\). 之后要回答\(m\)组询问,每组询问包含\(v_i,k_i\),要回答以\(v_i\)为根的子树中,颜色出现次数不小于\(k_i\)的颜色的和. 思路: 这种静态子树上的问题,可以考虑dsu on tree. 由于要回答次数超过\(k\)的颜色和,那么建立一颗线段树,以出现次数为横坐标,维护颜色的和. 由于\(dsu\ on\ tree\),每个点会被访问\(O(logn)\)次,因为每个结点有修改操作,所以会多…