P6626 题解
有一个很暴力的解法,就是以询问点为根 DFS。
考虑优化,我们考虑优化换根。
当根节点从父亲移动到它的某个孩子时,孩子的子树内所有点深度减 \(1\) 其余点深度加 \(1\)。
同理,当根节点从某个节点移动到它的父亲时,它的子树内所有点深度加 \(1\) 其余点深度减 \(1\)。
那么考虑把询问挂在点上,然后处理出以 \(1\) 为根的深度,然后从 \(1\) 开始 DFS 并按照上面的方法修改所有节点的深度。
不难发现我们需要一个数据结构支持区间加和区间查询某一个数出现次数。
考虑分块,块内维护一个桶和加法标记即可维护所有信息与修改查询,将分块离线逐块处理即可做到 \(O(n)\) 空间,\(O(Tn \sqrt n)\) 时间。
由于常数很逆天,所以目前只在 LOJ 上通过,这里放一个评测链接。
P6626 题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
- JSOI2016R3 瞎BB题解
题意请看absi大爷的blog http://absi2011.is-programmer.com/posts/200920.html http://absi2011.is-programmer.co ...
随机推荐
- Mac Docker 挂载数据卷失败
问题描述: docker: Error response from daemon: Mounts denied: The path /srv/docker/bind is not shared fro ...
- HDU 多校 2023 Round #6 题解
HDU 多校 2023 Round #6 题解 \(\text{By DaiRuiChen007}\) A. Count Problem Link 题目大意 求有多少个长度为 \(n\),字符集大小为 ...
- C语言:如何删除在可视化网页中未可见的内容(网页txt)
我这个代码仅仅限制于在chrome浏览器中下载china daliy的网页中实现删除可视化内容,因为每个网页的超链接或者文本主内容分布不一样,但是学会了删除一个网页类型的不可视化内容之后,修改其他网页 ...
- Python基础篇(安装)
Python简介 Python是Guido van Rossum发布于1991年的一种计算机程序设计语言.是一种动态的.面向对象的脚本语言,是一种解释型的,弱类型的高级计算机语言.需要注意的是pyth ...
- Debian中配置NIS:用户账号管理
1.添加指定gid的组 groupadd -g 1001 upload # 添加了一个指定gid为1001的upload用户 2.添加指定uid的用户,并加入到指定组 useradd -u 1001 ...
- Must use PackageReference 解决办法
Must use PackageReference 这是因为 .net framework的项目 在nuget时,引用到了 .net core 下的包. 解决办法,把之前引用的相关包全部在nuget上 ...
- 【JS】await异常捕获,这样做才完美
缘由 JS中async/await异步调用,只能通过try-catch吗? 你想听的故事: 作为一个合格的全栈搬砖工,那必须文武双全,前后必备.遂吾日三省吾身,偶发觉前端长时间不写有些落下,便抽用了摸 ...
- Android 12(S) MultiMedia Learning(二)MediaPlayer Java
Android提供了MediaPlayer这样一个简单易用的音视频java播放接口,通过几个接口调用即可实现音视频播放. 源码位置 http://aospxref.com/android-12.0.0 ...
- Qt-FFmpeg开发-打开本地摄像头(6)
音视频/FFmpeg #Qt Qt-FFmpeg开发-打开本地摄像头[软解码+ OpenGL显示YUV] 目录 音视频/FFmpeg #Qt Qt-FFmpeg开发-打开本地摄像头[软解码+ Open ...
- 对于UITableView和UIImageView的DrawRect重写之后的影响
一.继承 UITableView和UIImageView , 重写 DrawRect 方法,然后里面留空 ImageView @implementation DrawImageView - (void ...