cf375D. Tree and Queries(莫队)

题意

题目链接

给出一棵 n 个结点的树,每个结点有一个颜色 c i 。 询问 q 次,每次询问以 v 结点为根的子树中,出现次数 ≥k 的颜色有多少种。树的根节点是1。

Sol

想到了主席树和启发式合并。。很显然都不能做。

标算是dfs序上暴力莫队。。甘拜下风

具体实现的时候可以直接用\(tim[i]\)表示第\(i\)个颜色的出现次数,\(ans[i]\)表示出现次数多于\(i\)的颜色的种类

由于左右端点移动的时候只会对一个\(ans[i]\)产生影响,所以修改是\(O(1)\)

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 2e5 + 10;
inline int read() {char c = getchar(); int x = 0, f = 1;while(c < '0' || c > '9') {if(c == '-') f = -1; c = getchar();}while(c >= '0' && c <= '9') x = x * 10 + c - '0', c = getchar();return x * f;
}
int N, M, dfn[MAXN], rev[MAXN], tot, block, bel[MAXN], siz[MAXN], col[MAXN], tims[MAXN], Ans[MAXN], out[MAXN];
vector<int> v[MAXN];
struct Query{int id, l, r, k;bool operator < (const Query &rhs) const {return bel[l] == bel[rhs.l] ? r < rhs.r : bel[l] < bel[rhs.l];}
}Q[MAXN];
void dfs(int x, int fa) {dfn[x] = ++tot; rev[tot] = x; siz[x] = 1;for(int i = 0, to; i < v[x].size(); i++) {if((to = v[x][i]) == fa) continue;dfs(to, x); siz[x] += siz[to];}
}
void add(int x, int opt) {if(opt == 1) Ans[++tims[x]]++;else Ans[tims[x]--]--;
}
void solve() {  sort(Q + 1, Q + M + 1);int l = 1, r = 0;for(int i = 1; i <= M; i++) {while(r > Q[i].r) add(col[rev[r--]], -1);while(r < Q[i].r) add(col[rev[++r]], 1);while(l < Q[i].l) add(col[rev[l++]], -1);while(l > Q[i].l) add(col[rev[--l]], 1);out[Q[i].id] = Ans[Q[i].k];///printf("%d\n", out[Q[i].id]);}for(int i = 1; i <= M; i++) printf("%d\n", out[i]);}
int main() {N = read(); M = read(); block = sqrt(N);for(int i = 1; i <= N; i++) col[i] = read(), bel[i] = (i - 1) / block + 1;for(int i = 1; i <= N - 1; i++) {int x = read(), y = read();v[x].push_back(y); v[y].push_back(x);}   dfs(1, 0);for(int i = 1; i <= M; i++) {Q[i].id = i; int x = read(); Q[i].k = read();Q[i].l = dfn[x];Q[i].r = dfn[x] + siz[x] -1;}solve();return 0;
}
/*
*/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

it项目管理 pdf_IT项目管理的控制经验

据调查&#xff0c;只有37%的IT项目在计划时间内完成&#xff0c;42%的在预算内完成。IT项目成功率不高的根源在于IT项目管理是项系统工程&#xff0c;不仅需要项目经理个人具备一定的组织、决策、技术、业务、沟通能力&#xff0c;更需要运用多种手段对项目的时间、质量、成本…

安装hadoop集群---resourcemanager和NameNode同一台机器上

1、复制虚拟机&#xff0c;搞了5台。 1&#xff1a;namenode&#xff0c;resourcemanager 2&#xff1a;secondardNameNode 3&#xff0c;4&#xff0c;5&#xff1a;DataNode 2、修改了网卡配置&#xff0c;连接上SecureCRT ---------root----用户---------- 3、date查看了…

ps把图抠到html里,ps抠图教程:手把手教你如何用ps抠头发丝

PS抠图是现在常见的抠图方法之一&#xff0c;色块分明的图是很好抠的&#xff0c;但是如果是需要抠出来的物体是细微凌乱的呢&#xff1f;就像头发丝。PS如何抠头发丝才能毫无P图痕迹&#xff1f;如何抠头发丝一类的图像呢&#xff0c;本文介绍的是使用通道结合其余一些命令完成…

臻识科技用全智能相机,把智慧城市的交通/安防/工业制造做到极致

俨然&#xff0c;智慧城市已经是一个技术密集、资本密集、巨头密集、关注度密集的大热门领域。 从技术层面来看&#xff0c;智慧城市对当下热门技术进行了综合&#xff1a;Cloud、Big Data、AI、AR/VR、5G、IoT、Quantum Computing、Edge Computing、 Block Chain等&#xff0…

热式气体质量流量计检定规程_宁夏热式气体质量流量计价位,玻璃管液位计怎么样...

金湖中原仪表有限公司为您详细解读eJxKfc宁夏热式气体质量流量计价位的相关知识与详情&#xff0c;气体流量计是计量气体流量的仪表。安拆正在管路中记载流过的气体量。能够丈量煤气&#xff0c;空气&#xff0c;氮气&#xff0c;乙炔&#xff0c;&#xff0c;氢气&#xff0c;…

自己从零安装hadoop-HA集群

总体步骤 1、分配机器&#xff0c;各安装什么软件 2、每个节点设置时间一致&#xff0c;设置开机自动校验时间。 3、每个节点修改主机名。 4、每个节点配置hosts。 5、每个节点关闭防火墙。 6、上传JDK&#xff0c;配置JDK 7、创建hadoop用户。 8、给hadoop用户配置root…

高校学计算机研究生录取分数排名,四川大学计算机学院2018年硕士研究生招生拟录取名单及成绩公示...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼四川大学计算机学院2018年硕士研究生招生拟录取名单公示(全日制)姓名 拟录取专业 总成绩 初试成绩 复试成绩 备注白迪 计算机技术 75.3 353 160白婉玉 计算机技术 79.35 369 169.8曾春明 计算机技术 74.7 350 158.8陈澄 计算机技术…

蓝牙基础知识进阶——Physical channel

蓝牙基础知识进阶——Physical channel二、物理通道物理通道是piconet区分的标准&#xff0c;它是蓝牙系统结构层次中的最底层了。Q1&#xff1a;物理通道有哪些类型物理通道通常可以分为四种类型&#xff1a;1、basicpiconet channel2、adaptedpiconet channel这两种channel是…

mapreduce程序开发的一些总结

mapreduce在编程的时候&#xff0c;基本上一个固化的模式&#xff0c;没有太多可灵活改变的地方&#xff0c;除了以下几处&#xff1a; 1、输入数据接口&#xff1a;InputFormat ---> FileInputFormat(文件类型数据读取的通用抽象类) DBInputFormat &#xff08;数据库数据读…

深度学习数据驱动_利用深度学习实现手绘数据可视化的生成

前一段时间&#xff0c;我开发了Sketchify&#xff0c; 该工具可以把任何以SVG为渲染技术的可视化转化为手绘风格。&#xff08;参考手绘风格的数据可视化实现 Sketchify&#xff09;那么问题来了&#xff0c;很多的chart是以Canvas为渲染技术的&#xff0c;那要怎么办&#xf…

远程计算机无法操作,win7系统的QQ远程协助无法控制计算机的问题的解决方法

在使用win7系统的计算机工作和学习过程中&#xff0c;可能会发生win7系统的QQ远程协助无法控制计算机的情况. 如何处理win7系统的QQ远程控制无法控制计算机的问题&#xff1f;对于计算机级别的用户&#xff0c;如果win7系统qq远程协助无法控制计算机&#xff0c;通常不知道该怎…

java应用中的日志介绍

日志在应用程序中是非常非常重要的&#xff0c;好的日志信息能有助于我们在程序出现 BUG 时能快速进行定位&#xff0c;并能找出其中的原因。 但是&#xff0c;很多介绍 AOP 的地方都采用日志来作为介绍&#xff0c;实际上日志要采用切面的话是极其不科学的&#xff01;对于日志…

微软全新Chromium版Edge浏览器下载

下载地址&#xff1a; https://www.microsoft.com/en-us/edge

企业网站 源码 服务邮箱:_后来才知道:温州腾讯企业邮箱定制服务

后来才知道&#xff1a;温州腾讯企业邮箱定制服务 qnmsptdb后来才知道&#xff1a;温州腾讯企业邮箱定制服务 软文推广得到大家的转发之后&#xff0c;那么软文的经济价值也会随之而来。内容更新质量言外之意&#xff0c;如果你长期更新低质量内容&#xff0c;是不可取的&#…

圣三一学院计算机专业,360教育集团:爱尔兰都柏林大学圣三一学院计算机专业...

应用&#xff0c;新产品设计。网络和分布系统的安全和管理课程介绍计算机基层和网络安全&#xff0c;研究网络管理的方法和高端信息服务的管理。这六个部分内容的学习包括每周大概20小时的沟通时间&#xff0c;包括讲座、辅导、研讨会、试验等。绝大部分课程要求学生完成其他课…

JavaScript的检测及其数据类型

一、JavaScript有几种类型的值&#xff1f;Javascript有两种数据类型&#xff0c;分别是基本数据类型和引用数据类型。其中基本数据类型包括Undefined、Null、Boolean、Number、String、Symbol (ES6新增&#xff0c;表示独一无二的值)&#xff0c;而引用数据类型统称为Object对…

我是Leader,我被降职成了普通员工,HR说:公司要梯队年轻化

“BAT也不是完美的避风港哇~”这是老刘说的&#xff0c;老刘是BAT某家的一个Leader&#xff0c;职级约类似T7(T族一般是技术族&#xff0c;管理是M族)&#xff0c;在BAT某家呆了11年&#xff0c;但是在整个互联网行业推崇&#xff0c;梯队年轻化的氛围时&#xff0c;老刘所在的…

in最多可以放多少?_汽车最多可以停放多少天不开?维修师傅:尽可能别超过这个时间...

在当下&#xff0c;买车似乎已经成为了一种消费潮流&#xff0c;其中不乏一些本身用车需求不明显但也随大流买车的人&#xff0c;结果车买回来之后最初的新鲜劲一过就放在那里不怎么用了。当然也有部分车主是因为自己的工作修需要经常需要在外出差&#xff0c;那么就算想天天开…

计算机电源风扇安装方法,机箱风扇怎么装 电脑机箱风扇电源线接法

夏天天气炎热&#xff0c;电脑机箱内温度也较高&#xff0c;温度过高会影响电脑性能出现死机等问题&#xff0c;甚至影响硬件寿命。所以给机箱装风扇来散热是非常重要的。那么&#xff0c;机箱风扇怎么装合理呢?机箱风扇的电源线怎么接呢?下面分享一下机箱风...夏天天气炎热&…

使用微服务失败的12个原因

在过去的几年中&#xff0c;我已经对处于数字化转型过程中的多个产品团队进行了架构审查。大多数团队都在按照微服务架构构建产品。他们有使用基于微服务的体系结构的所有正确意图-更快的开发&#xff0c;更好的可伸缩性&#xff0c;更小的独立团队&#xff0c;独立的部署&…