[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…
题目大意:有一棵以$1$为根的有根树,有$n$个点,每个节点初始有颜色$c_i$.有两种操作: $1 v c:$将以$v$为根的子树中所有点颜色更改为$c$ $2 v:$ 查询以$v$为根的子树中的节点有多少种不同的颜色 题解:只有$60$种颜色,可以考虑用一个$long\;long$把颜色状压,用$dfs$序把树上问题转化为线段问题就行了 卡点:各种该开$long\;long$开$int$ C++ Code: #include <cstdio> #define maxn 400010 usi…
借用学长的活:60种颜色是突破口(我咋不知道QAQ) 好像这几道都是线段树+dfs序??于是你可以把60种颜色压进一个long long 里,然后向上合并的时候与一下(太妙了~) 所以记得开long long (又调了一个半小时...打代码只花了20分钟???) #include<cstdio> #include<iostream> #define ll long long #define R register int #define ls (tr<<1) #defin…
线段树维护 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…
题目链接 题目大意 \(~~\)给出一棵 nn 个节点的树,根节点为 11.每个节点上有一种颜色 c\(_{i}\) 和m 次操作.操作有两种: \(~~~~\) 1. 1\(~\)u\(~\)c:将以\(~\)u\(~\)为根的子树上的所有节点的颜色改为\(~\)c. \(~~~~\) 2. 2\(~\)u\(~\):询问以\(~\)u\(~\)为根的子树上的所有节点的颜色数量. \(~\) 1≤n,m≤4×10\(^{5}\)$~~$1≤c≤60 题目思路 \(~~\)因为我们注意到颜色c的…
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noip前的杂题训练,我也很无奈啊 做完了的扔最后,欢迎好题推荐 这么多题肯定是完不成了,能多做一道是一道吧 DP yyb真是强得不要不要的辣:http://www.cnblogs.com/cjyyb/category/1036536.html [ ] [SDOI2010]地精部落 https://www…
目录 Noip 训练指南 图论 数据结构 位运算 期望 题解 Noip 训练指南 目前完成 \(4 / 72\) 图论 [ ] 跳楼机 [ ] 墨墨的等式 [ ] 最优贸易 [ ] 泥泞的道路 [ ] BZOJ2959 [ ] BZOJ2535 数据结构 [ ] luog 2572 [SCOI2010]序列操作 [ ] luogu2184 [ ] cf620E New year tree [ ] GSS1 [ ] GSS3 [ ] GSS4 [ ] HDU6315 [ ] luogu2073 […
Description 你有一棵以1为根的有根树,有n个点,每个节点初始有一个颜色c[i]. 有两种操作: 1 v c 将以v为根的子树中所有点颜色更改为c 2 v 查询以v为根的子树中的节点有多少种不同的颜色 Input 第一行,两个整数\(n,m\),分别代表有\(n\)个节点和\(m\)个操作. 第二行,共\(n\)个整数,代表每个节点的初始颜色\(c[i]\) 接下来\(n-1\)行,描述一条边. 接下来\(m\)行,代表每个操作. Output 对于每个询问操作,输出一行. 刚开始以为…
(题面来自luogu) 题意翻译 你有一棵以1为根的有根树,有n个点,每个节点初始有一个颜色c[i]. 有两种操作: 1 v c 将以v为根的子树中所有点颜色更改为c 2 v 查询以v为根的子树中的节点有多少种不同的颜色 翻译贡献者UID:28455 n.m <= 4e5,ci <= 60. 今天唯一听懂的一道题目,调了两个小时--因为要查询子树信息,考虑构造出dfs序之后,用线段树维护区间颜色.因为颜色只有60种,可以维护在节点上维护bitset或者一个64位整型来压缩状态,每一位上表示以该…