题目名称 | 2304. [HZOI 2015]简单的最近公共祖先 |
---|---|
输入输出 | get_tree.in/out |
难度等级 | ★★★ |
时间限制 | 2000 ms (2 s) |
内存限制 | 256 MiB |
测试数据 | 10 |
题目来源 | Aglove 于2016-05-12加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:16, 提交:116, 通过率:13.79% | ||||
Sky_miner | 100 | 4.465 s | 107.10 MiB | C++ |
gls1196 | 100 | 4.554 s | 122.38 MiB | C++ |
Sky_miner | 100 | 4.585 s | 114.73 MiB | C++ |
gls1196 | 100 | 4.593 s | 122.38 MiB | C++ |
再见 | 100 | 4.980 s | 103.29 MiB | C++ |
神利·代目 | 100 | 5.102 s | 82.66 MiB | C++ |
L_in | 100 | 5.572 s | 114.75 MiB | C++ |
assassain | 100 | 5.575 s | 91.84 MiB | C++ |
半汪 | 100 | 5.594 s | 96.41 MiB | C++ |
Aglove | 100 | 5.822 s | 114.73 MiB | C++ |
关于 简单的最近公共祖先 的近10条评论(全部评论) | ||||
---|---|---|---|---|
log^2卡了80分,我知足了= =
AntiLeaf
2016-10-08 19:03
13楼
| ||||
。。。题干中没说如果没有LCA就返回-1啊。。。虽然样例给出了。。
| ||||
Aglove
2016-07-03 19:13
11楼
| ||||
回复 @Aglove :
写上题面上说的那几行代码后,莫名其妙RE。。。 | ||||
回复 @Sky_miner :
已更正题面,是我疏忽了
Aglove
2016-06-13 17:34
9楼
| ||||
这售后服务很赞啊=w=
一個人的雨
2016-06-07 22:45
8楼
| ||||
回复 @白天<=>黑 :
orz 看来好像遇到玄学了55555 谢谢你咯233333
hebomou
2016-06-03 09:13
7楼
| ||||
Aglove
2016-06-03 06:18
6楼
| ||||
回复 @白天<=>黑 : 谢谢咯23333 时间戳有道理啊 被stl惯坏了233333
但是好像不是读入的锅。。? 因为输出是对的 但是程序返回值不正常。。
hebomou
2016-06-02 22:42
5楼
| ||||
Aglove
2016-06-02 15:26
4楼
|
题目描述:
给定一棵有根树,树根为1
一开始树上所有节点都是白色的,要求你维护以下操作:
1、C 将树上所有黑色节点变成白色
2、M u 将u节点染黑
3、Q u 查询u和所有黑色节点的所有LCA的深度最大的点的编号
LCA定义为两个点的最近公共祖先
输入格式:
第一行输入n,m表示节点总数和操作总数
以下n-1行每行u,v描述树上的一条边的两个端点
以下m行每行描述一个询问如题所示
n,m<=2000000
输出格式:
对于每个Q询问输出相应的答案
如果没有LCA的话输出-1
输入样例:
10 10
1 2
1 3
2 4
3 5
4 6
3 7
4 8
7 9
8 10
M 9
M 9
M 6
Q 10
Q 5
M 9
C
Q 6
M 4
M 5
输出样例:
4
3
-1
提示:
注意输入数据较大,推荐使用读入优化
由于cojs评测机的问题,可能会爆栈,所以请在main函数的开头加入如下程序:
int __size__=128<<20;
char *__p__=(char*)malloc(__size__)+__size__;
__asm__("movl %0, %%esp\n"::"r"(__p__));
注意上述代码会占用你128MB的空间,请自行修改,测试数据大约开到70MB就可以了
本题开了标程两倍的时限,而且是黑白树系列的某道题的加强版,原做法是难以通过的
本题的做法是本人自己想出来的,如果有更好的做法,欢迎与我联系
本来想强制在线的,但是为了更好的算法的出现就没有强制 强制在线