「CF375D Tree and Queries」】的更多相关文章

题目 \(dsu\ on\ tree\)的板子题了 \(dsu\ on\ tree\)本质上一种优秀通过轻重链剖分优化到\(O(nlogn)\)的暴力 一般用来解决没有修改的允许离线的子树查询问题 首先先来处理出每一个节点的重儿子 接下来按照如下的顺序统计 递归处理当前节点的所有轻儿子 递归处理重儿子 遍历一遍整棵子树,统计信息(但是不用访问当前点的重儿子) 如果这个节点是重儿子,就返回,否则的话就清空所有信息 所以第三步,不用访问当前点的重儿子就是因为在第四步的时候重儿子没有被清空 至于这道题…
题意翻译 给出一棵 n 个结点的树,每个结点有一个颜色 c i . 询问 q 次,每次询问以 v 结点为根的子树中,出现次数 ≥k 的颜色有多少种.树的根节点是1. 感谢@elijahqi 提供的翻译 题目描述 You have a rooted tree consisting of n n n vertices. Each vertex of the tree has some color. We will assume that the tree vertices are numbered…
思路 dsu on tree的板子,可惜人傻把 for(int i=fir[u];i;i=nxt[i]) 打成 for(int i=fir[u];i<=n;i++) 调了两个小时 这题要求维护>=k的颜色数量 所以考虑什么情况下会对答案产生贡献 显然是>=k的点数会产生贡献,所以用VAL记录每个颜色的出现次数,然后额外开一个d[k]数组表示>=k的颜色数量 然后就可以优雅的跑过去了 代码 #include <cstdio> #include <algorithm&…
感觉CF的题目名都好朴素的样子 你谷链接 首先这题显然是个dsu on tree 但是我不会. 其次这题显然是个莫队.这我会啊! 然后会发现好像不是很对劲.因为每次询问都有一个k,貌似和传统的莫队数颜色有点不一样. 本蒟蒻看到这里的时候内心是崩溃的.然后就看了一眼题解. 然后我就迷惑了.震惊,前缀和还可以O(1)修改,活到爆! 然后经过郭神的一番论证以后,我惊讶的发现,这个题还真能O(1)修改前缀和. 首先,两个数组.sum[i]表示出现次数大于i的颜色的数量.val[i]表示颜色i的出现次数.…
原题传送门 这道题要用树链剖分,我博客里有对树链剖分的详细介绍 我博客中对莫队的详细介绍 莫队好题 我一上来想写线段树,随后觉得不好写并弃坑 我们可以看见没有修改操作,钦定莫队 但这是在树上,所以不能直接用莫队(废话) 我们要树链剖分,使得节点和节点的子树能在一个区间里(不会树链剖分的出门左转洛咕树链剖分模板) 剩下的就是最基础的莫队,但是前置和后置++,--要注意qaq,我以前写莫队经常因为++,--的问题出锅qaq 剩下一些细节见程序 #pragma GCC optimize("O3&quo…
题意 题目链接 给出一棵 n 个结点的树,每个结点有一个颜色 c i . 询问 q 次,每次询问以 v 结点为根的子树中,出现次数 ≥k 的颜色有多少种.树的根节点是1. Sol 想到了主席树和启发式合并..很显然都不能做. 标算是dfs序上暴力莫队..甘拜下风 具体实现的时候可以直接用\(tim[i]\)表示第\(i\)个颜色的出现次数,\(ans[i]\)表示出现次数多于\(i\)的颜色的种类 由于左右端点移动的时候只会对一个\(ans[i]\)产生影响,所以修改是\(O(1)\)的 #in…
Link \(\text{Solution:}\) 讲实话这题有点烦,不知道为啥改了下\(\text{dfs}\)就过了--原版本\(dfs\)好像没啥错啊-- 其实对于子树问题,我们求出原来树的\(dfs\)序列,则可以将它转化为一个序列问题.注意题目中说的是有根树,以\(1\)为根. 那么,我们一遍\(dfs\)求出序列后,把它插到询问里面,即更新为原序列. 注意,我们对应\(dfs\)序并不是原来的点,所以还需要一个数组\(rk\)维护映射\(point\to dfn\). 那么,对于维护…
题面:#10471. 「2020-10-02 提高模拟赛」灌溉 (water) 假设只有一组询问,我们可以用二分求解:二分最大距离是多少,然后找到深度最大的结点,并且把它的\(k\)倍祖先的一整子树删掉,看一下一共要删几次,显然满足单调性. 现在要询问所有取值.上面二分的过程启发我们可以反过来,通过枚举答案,然后找到答案对应哪些询问.显然对于当前\(\text{ans}\),一次删除最少删掉\(ans+1\)个点,最多删\(\frac{n}{ans+1}\)次,因此是一个调和级数\(\frac{…
近日,具有互联网基因的.亏损大户(成立三年基本没盈利,今年二季度末亏损近4亿,你能指望它多厉害?).财产险公司—众安推出“尊享e生”中高端医疗保险(财险公司经营中高端医疗真的很厉害?真的是中高端医疗险?医疗网络如何?服务如何?健康管理服务如何?直付效果如何?),宣传文案胆子大,宣传话术很玩味(有木有销售误导嫌疑?),推广势头很火爆,自称目前市上最牛最强医疗险,不是之一?? 可是,可是,除了购买方便(点击二维码,填写姓名.身份证两个内容就完成投保,家庭地址.邮编等一概不需要.只要点选如实告知页面下…
下载地址:https://github.com/pdcgomes/XCActionBar 基本命令: (1)「command+shift+8」或者双击「command」键可以打开「动作输入框窗口」 (2)「command+option+7」或者双击「alt」键可以执行「上次的动作」 编程时可用于双击或三击事件的按键分别为如下5个: (1)「alt」:NSAlternateKeyMask (2)「command」:NSCommandKeyMask (3)「control」:NSControlKey…