题解

36 条题解

  • 0
    @ 2008-10-26 16:42:26

    晕,VIJOS不支持label&goto。

    找出最近祖先后,计算time&len要考虑3种情况

    1.s是t的父亲,time不记t.

    2.t是s的父亲,time要加上t的.

    3.都不是的话,分两路做,注意考虑祖先算了两次.

  • 0
    @ 2008-10-21 20:01:33

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    我也很光荣啊!

  • 0
    @ 2008-10-21 19:58:53

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    光荣啊!

  • 0
    @ 2008-09-22 09:05:00

    我觉得测试数据不全,S是T的father,还是t是s的father应该是有区别的,但是好像都一样,区别不区别都可以AC

  • 0
    @ 2008-09-20 16:50:42

    为什么我最后一个点的输出比标准输出长?

    望有人能帮我解答

  • 0
    @ 2008-09-04 23:32:52

    最近公共祖先恩

    我!@!$#&@&*#@^%#

    评测机问题 居然调试半天

  • 0
    @ 2008-09-01 16:46:53

    分两种情况:

    1)s是t的father,或者t是s的father。(s与t谁儿子谁father计算时是有差别的)

    2)s与t通过其最近公共祖先相连。

    分这两种情况分别求解就行了。

  • 0
    @ 2008-08-28 06:41:27

    评册机真的有问题,一样的程序小号交两次都过,大号交4次都不过,最后一点超时,想想不可能超时啊,我日,AC率就是这么被刷下的

  • 0
    @ 2008-08-28 00:52:05

    啊,我好像也是楼上的那个问题啊,终于AC了~~

  • 0
    @ 2008-08-26 21:33:44

    我靠。起始文件的打开怎么会不算时间!!!

  • 0
    @ 2008-08-26 10:27:08

    我是用字符串处理的...比如说1>>2>>3>>4>>5这个过程经过我处理会出来一个2|3|4|5|的字符串..再根据这个字符串来统计就OK了...

    话说写了97行的说....

    OStr:='|';

    EStr:='|';

    i:=s;

    repeat

    str(i,Si);

    OStr:=OStr+Si+'|';

    i:=p;

    until i=0;

    i:=t;

    repeat

    str(i,Si);

    EStr:=EStr+Si+'|';

    i:=p;

    until i=0;

    len:=min(length(OStr),length(EStr));

    for i:=1 to len do

    begin

    if (copy(OStr,length(OStr)-i+1,i)=copy(EStr,length(EStr)-i+1,i))and(OStr[length(OStr)-i+1]='|') then sign:=i

    else

    if copy(OStr,length(OStr)-i+1,i)copy(EStr,length(EStr)-i+1,i) then break;

    end;

    delete(OStr,length(OStr)-sign+1,length(OStr));

    delete(EStr,length(EStr)-sign+2,length(EStr));

    这里一段是写出两个文件夹分别到根目录下的顺序然后把重复的去掉

  • 0
    @ 2008-08-25 15:42:53

    楼下的方法不错但要注意三种情况

    能把以下数据过了,那你基本上就能AC了

    8 1 5

    1 2 Lo

    2 3 ra

    3 0 .

    4 3 bi

    5 4 t

    6 5 .COM

    7 6 456

    8 6 123

    8 2 1

    1 2 Lo

    2 3 ra

    3 0 .

    4 3 bi

    5 4 t

    6 5 .COM

    7 6 456

    8 6 123

    8 4 7

    1 2 Lo

    2 3 ra

    3 0 .

    4 3 bi

    5 4 t

    6 5 .COM

    7 6 456

    8 6 123

    8 8 5

    1 2 Lo

    2 3 ra

    3 0 .

    4 3 bi

    5 4 t

    6 5 .COM

    7 6 456

    8 6 123

  • 0
    @ 2008-08-25 09:33:10

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

    这个貌似不是搜索题啊。

    每个文件只有一个前驱,所以从s节点和t节点可以直接回溯到根节点,去掉这其中重复的,就构成从s到t的一条路径。所以是O(n)的.即使n=1000000,我这样的算法还是可以0msAC

  • 0
    @ 2008-08-24 11:04:09

    单向广搜就能过了......

  • 0
    @ 2008-08-24 09:25:19

    哇!!!!!!!!!!!!!!!

    我疯掉了,理解错题目了

    白扔分了

  • 0
    @ 2008-08-24 08:17:41

    我的ws 双向广搜 都过了..vj的评测机就是好

信息

ID
1427
难度
7
分类
树结构 | 最近公共祖先字符串 点击显示
标签
(无)
递交数
1261
已通过
247
通过率
20%
被复制
3
上传者