【bzoj4940】这是我自己的发明】的更多相关文章

Portal --> bzoj4940 Solution (原题这题面到底是..怎么回事啊深深的套路qwq) 感觉自己对根号的算法还是很..没有感觉啊== 实际上这题和bzoj5016没有任何区别的感觉...那个换根操作不过是一个幌子而已,处理出\(dfn\)序之后根据当前根\(rt\)的\(dfn\)序和\(x\)的子树范围的关系可以直接将查询变成\(dfn\)序上的至多两段区间 然后就变成了和bzoj5016一模一样的东西..只是区间可能有两个这样的话直接两两组合一下什么的就好了 ​ 具体的…
用dfs序把询问表示成询问dfs序的两个区间中的信息 拆成至多9个询问(询问dfs序的两个前缀),对这些询问用莫队处理,时间复杂度$O(n\sqrt{m})$ #include<bits/stdc++.h> typedef long long i64; ; ,ob[N],*op=ob; int G(){ )fread(ptr=buf,,,stdin); return *ptr++; } int _(){ ; ){ )++ptr; )x=x*+*ptr++-; }else{ int c=G();…
题目描述 给一个树,n 个点,有点权,初始根是 1. m 个操作,每次操作: 1. 将树根换为 x. 2. 给出两个点 x,y,从 x 的子树中选每一个点,y 的子树中选每一个点,如果两个点点权相等,ans++,求 ans. 输入 第一行两个数表示 n,m. 第二行 n 个数,表示每个点的点权 a[i]. 之后 n - 1 行 , 每行两个数 x , y , 表示一条边 之后 m 行,每行为 1 x 或者 2 x y. 1 x,表示将根变成 x点. 2 x y,表示查询 x 点的子树与 y 点的…
阅读此篇文章前请先跟我大喊三声:dllxl!dllxl!dllxl! 咳咳. 题意: Description 给一个树,n 个点,有点权,初始根是 1. m 个操作,每次操作: 1. 将树根换为 x. 2. 给出两个点 x,y,从 x 的子树中选每一个点,y 的子树中选每一个点,如果两个点点权相等,ans++,求 ans. Input 第一行两个数表示 n,m. 第二行 n 个数,表示每个点的点权 a[i]. 之后 n - 1 行 , 每行两个数 x , y , 表示一条边 之后 m 行,每行为…
题目传送门 https://lydsy.com/JudgeOnline/problem.php?id=4940 题解 对于换根操作,处理方法就很套路了. 首先先假定以 \(1\) 为根做一遍 dfs,那么在 \(rt\) 为根的时候,对于一个点 \(x\),如果 \(rt\) 不在 \(x\) 的以 \(1\) 为根时的子树中,那么 \(x\) 在 \(rt\) 为根时的子树和以 \(1\) 时的子树一样. 如果 \(rt\) 在 \(x\) 的以 \(1\) 为根时的子树中,那么我们求出 \(…
指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构; 能很方便地使用数组和字符串; 并能象汇编语言一样处理内存地址,从而编出精练而高效的程序.指针极大地丰富了C语言的功能. 学习指针是学习C语言中最重要的一环, 能否正确理解和使用指针是我们是否掌握C语言的一个标志.同时, 指针也是C语言中最为困难的一部分,在学习中除了要正确理解基本概念,还必须要多编程,上机调试.只要作到这些,指针也是不难掌握的. 指针的基本概念 在计算机中,所有的数据…
在 Bash 中,有两个内置命令用来控制 Bash 的各种可配置行为的开关(打开或关闭),这些开关称之为选项(option).其中一个命令是 set,set 命令有三种功能:显示所有的变量和函数:修改 Bash 的位置参数:控制 Bash 的第一套选项.可见 set 命令完全违背了“一个命令只干一件事”的 UNIX 哲学.另外一个命令是 shopt,从名字(shell options 的缩写)就可以看出,它的功能是控制 Bash 的另一套选项.那么问题就来了,为啥要用两套选项? 在回答为什么之前…
Eidyzhang:发明整个世界+224C个国家 Eidyzhang: Genius.Founder.CEO.23 I 世界级最高级创始人.世界最高级FounderCEO 出生在亚洲中国.Eidyzhang 拥有黑色头发白色皮肤(20岁)大学辍学生.提前2年离开学校 Hello World Fouder:Eidyzhang story for Grow Up Eidyzhang是一个大学辍学生(修读2年) 这一切我都可以做得到.我是Eidyzhang.我是世界级最高级梦想家.理想家: 年少的我拥…
Eidyzhang: Genius.Founder.CEO.23 I 世界级最高级创始人.世界最高级FounderCEO 出生在亚洲中国.Eidyzhang 拥有黑色头发白色皮肤(20岁)大学辍学生.提前2年离开学校 她是这个世界的天才.全球互联网的天才女孩(提前离开学校.是因为世界需要我) Eidyzhang是一个大学辍学生(修读2年) (20岁)离开学校: (21岁)成立自己的第一家Newspaper广告公司; (21.22岁期间独立搭建很多Blog和门户系统.举办很多活动.卖掉专利.爱发明…
在C++编程中, 我们常打交道的无非是编辑器和编译器, 对编辑器起来说,我们常遇到就是乱码问题, 比如中文注释显示或是保存不了等, 解决办法就是把你的文件保存成Unicode(UTF8). 对于编译器来说, 编码方式取决于它对C++标准的支持程度, 比如C++ 11以前,字符串我们只能指定成2种:一种是MBCS,如char* p="abc哈哈": 还有一种是UCS2, 比如wchar_t*p = L"abc哈哈", 这样编译器就知道你要表示的字符串类型.C++11之…