[BZOJ 3319] 黑白树
3319: 黑白树
Time Limit: 10 Sec Memory Limit: 512 MB
Submit: 557 Solved: 194
[Submit][Status][Discuss]
Description
给定一棵树,边的颜色为黑或白,初始时全部为白色。维护两个操作:
1.查询u到根路径上的第一条黑色边的标号。
2.将u到v 路径上的所有边的颜色设为黑色。
Notice:这棵树的根节点为1Input
第一行两个数n,m分别表示点数和操作数。
接下来n-? 1行,每行2个数u,v.表示一条u到v的边。
接下来m行,每行为以下格式:
1 v 表示第一个操作
2 v u 表示第二种操作Output
对于每个询问,输出相应答案。如果不存在,输出0。
Sample Input
5 4
1 2
1 3
2 4
2 5
1 2
2 2 3
1 3
1 4Sample Output
0
2
1HINT
对于 100% 的数据:n,m<=10^6
看见这道题之后似乎可以用树剖来打但是$10^6$的数据范围显然对于树剖的巨大常数$O(nlogn)$是无法承受的
这题在$HZOJ$上的数据极其坑爹,卡几乎所有正解。。。网上找的$BZOJ$标程都$TLE$了。。。
然而不卡暴力..不卡暴力...暴力...(╯‵□′)╯︵┻━┻
正解似乎是线段树套平衡树=w=
目测数据是个菊花图。。。深度极其的浅导致依靠子树大小来减少时间消耗的正解被时间与深度相关的暴力程序力压。。。
最后弃疗怂一波用暴力A掉了这题QwQ
暴力袋马如下:
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <iostream>
#include <algorithm> const int MAXE=;
const int MAXV=; struct Edge{
int from;
int to;
int id;
Edge* next;
}; Edge E[MAXE];
Edge* head[MAXV];
Edge* top=E; int n;
int m;
int id[MAXV];
int prt[MAXV];
int deep[MAXV];
bool color[MAXV]; void Initialize();
void Insert(int,int,int);
int Query(int);
void DFS(int,int,int,int);
void Modify(int,int); int main(){
int a,b,c;
Initialize();
DFS(,,,);
for(int i=;i<m;i++){
scanf("%d%d",&a,&b);
if(a==){
printf("%d\n",Query(b));
}
else if(a==){
scanf("%d",&c);
Modify(b,c);
}
}
return ;
} void Modify(int x,int y){
while(x!=y){
if(deep[x]<deep[y])
std::swap(x,y);
color[id[x]]=true;
x=prt[x];
}
} int Query(int x){
while(x!=){
if(color[id[x]])
return id[x];
else
x=prt[x];
}
return ;
} void DFS(int root,int prt,int deep,int id){
::id[root]=id;
::prt[root]=prt;
::deep[root]=deep;
for(Edge* i=head[root];i!=NULL;i=i->next){
if(i->to==prt)
continue;
DFS(i->to,root,deep+,i->id);
}
} void Initialize(){
int a,b;
scanf("%d%d",&n,&m);
for(int i=;i<n;i++){
scanf("%d%d",&a,&b);
Insert(a,b,i);
Insert(b,a,i);
}
} inline void Insert(int from,int to,int id){
top->id=id;
top->to=to;
top->from=from;
top->next=head[from];
head[from]=top;
top++;
}
Code
彪乘袋马可能会在我的GitHub Repository里更新QwQ
UPD 2017/07/31 补图w
[BZOJ 3319] 黑白树的更多相关文章
- BZOJ 3319 黑白树 并查集+线段树
这这这这这这什么毒瘤题!!!!!!!!!!!!!!!!!!!!!!!!!!!! 卡LCT(优秀的LCT由于是均摊本身就带着2,3的常数在,而且这道题对于LCT标记十分难维护,又得乘上4,5然后就炸了) ...
- BZOJ 3319: 黑白树 并查集 + 离线 + 思维
Description 给定一棵树,边的颜色为黑或白,初始时全部为白色.维护两个操作: 1.查询u到根路径上的第一条黑色边的标号. 2.将u到v 路径上的所有边的颜色设为黑色. Notice:这 ...
- BZOJ 3319: 黑白树 树+并查集+未调完+神题
Code: #include<bits/stdc++.h> #define maxn 1000003 using namespace std; char *p1,*p2,buf[10000 ...
- 【BZOJ】3319: 黑白树
http://www.lydsy.com/JudgeOnline/problem.php?id=3319 题意:给一棵n节点的树(n<=1e6),m个操作(m<=1e6),每次操作有两种: ...
- 【BZOJ】3319: 黑白树(并查集+特殊的技巧/-树链剖分+线段树)
http://www.lydsy.com/JudgeOnline/problem.php?id=3319 以为是模板题就复习了下hld............................. 然后n ...
- uoj #139. 【UER #4】被删除的黑白树 dfs序 贪心
#139. [UER #4]被删除的黑白树 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://uoj.ac/problem/139 Descript ...
- CodeM美团点评编程大赛初赛B轮 黑白树【DFS深搜+暴力】
[编程题] 黑白树 时间限制:1秒 空间限制:32768K 一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1.树上每个节点i对应一个值k[i].每个点都有一个颜色,初始的时候所有点都是白色 ...
- BZOJ 2243 染色 | 树链剖分模板题进阶版
BZOJ 2243 染色 | 树链剖分模板题进阶版 这道题呢~就是个带区间修改的树链剖分~ 如何区间修改?跟树链剖分的区间询问一个道理,再加上线段树的区间修改就好了. 这道题要注意的是,无论是线段树上 ...
- BZOJ.1036 [ZJOI2008]树的统计Count ( 点权树链剖分 线段树维护和与最值)
BZOJ.1036 [ZJOI2008]树的统计Count (树链剖分 线段树维护和与最值) 题意分析 (题目图片来自于 这里) 第一道树链剖分的题目,谈一下自己的理解. 树链剖分能解决的问题是,题目 ...
随机推荐
- 配置lnmp
===================准备篇: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/iptables-A INPUT -m state –state NEW ...
- 安装旧版的docker-engine-1.12.6
执行kubeadm init --api-advertise-addresses=172.16.160.211命令的时候,提示docker版本太新了 想要安装旧版docker,可以使用以下方法: yu ...
- flask简单web应用
推荐一个学习python的网站,个人觉得在这里面收获挺大的,希望对后来学习flask的小伙伴们有帮助.http://www.pythondoc.com/ 用flask框架实现第一个web应用 首先需要 ...
- .net core web api + Autofac + EFCore 个人实践
1.背景 去年时候,写过一篇<Vue2.0 + Element-UI + WebAPI实践:简易个人记账系统>,采用Asp.net Web API + Element-UI.当时主要是为了 ...
- 如何成为一名JAVAEE软件工程师?(前言)
笔者将会整理出一整套成为一个JAVAEE工程师的学习路线和资料.欢迎同行和网友们订阅或指正.不定期更新. 笔者在软件工作做了7年java开发,开发过ERP,CRM等应用系统并担任过项目 ...
- SyntaxError: Unexpected token < in JSON at position 0 错误
当你使用AJAX时有设定dataType : 'json' 所以在接回传值的时候会以json格式来解析但回传的资料非json格式就会出现这个错误讯息
- CSS3学习系列之背景相关样式(一)
新增属性: background-clip:指定背景的显示范围 background-origin:指定绘制背景图像时的起点 background-size:指定背景中图像的尺寸 background ...
- [leetcode-537-Complex Number Multiplication]
Given two strings representing two complex numbers. You need to return a string representing their m ...
- android app调试没问题,但打包签名的apk,运行时出现闪退怎么办?
在用Eclipse编写Android app时,有时调试时没有问题,但一经打包签名,运行就出现闪退,还报错说找不到某某类.一开始以为是混淆导致的,后来我没有混淆竟然也还是这个问题.无奈只得网上寻找解决 ...
- 每篇半小时1天入门MongoDB——4.MongoDB索引介绍及数据库命令操作
准备工作 继续连接到mongo C:\Users\zouqi>mongo MongoDB shell version: 3.0.7 connecting to: test 查看数据库和集合 &g ...