1511_弯弯柳枝

2022-5-16 18:17| 发布者: Hocassian| 查看: 42| 评论: 0|原作者: 肇庆学院ACM合集

摘要:
C:\Users\Administrator\Downloads\2019-10-12-10-14-2-89503870311400-Problem List-采集的数据-后羿采集器.html

Pro.ID

1511

Title

弯弯柳枝

Title链接

http://10.20.2.8/oj/exercise/problem?problem_id=1511

AC

4

Submit

22

Ratio

18.18%

时间&空间限制

  • Time Limit: 600/300 MS (Java/Others)     Memory Limit: 32768/32768 K (Java/Others)
  • 描述

    LISP是最早的高级编程语言之一,FORTRAN是当今仍在使用的最老的计算机语言之一。"表"是LISP的基本数据结构,用它可以进一步表示其它的重要数据结构,如"树"。

    本题要做的是:判断用LISP语言的S-表达式来表示的一棵二叉树是否满足某个特性。

    给出一棵二叉树,节点都是整数。编一个程序,判断是否存在一条从根节点到叶子节点的路径,这条路经上节点的总和等于某个值。如下图所示,这棵二叉树有4条从根到叶子的路径,它们节点的总和分别是27,22,26和18。树枝都是弯弯向下,像一棵柳树。Alice看着这棵树,不知为什么,想起了柳永的歌。

    二叉树采用LISP语言的S-表达式来表示,格式如下:

    empty tree(空树) ::= ()

    tree(树) ::= empty tree (integer tree tree)

    上图的二叉树就可以表示为(5 (4 (11 (7 ( ) ( )) (2 ( ) ( )) ) ( )) (8 (13 ( ) ( )) (4 ( ) (1 ( ) ( )) ) ) ) 。

    注意到,以这种格式来表示的话,所有叶子都是这种形式:(integer ( ) ( ) ) 。

    由于空树不存在根到叶子的路径,那么,对空树查询是否存在某条路径上节点的总和等于某个数,答案都是否定的。

    输入

    输入有多组测试数据,格式都是 "整数 树"。

    每个测试数据首先是一个整数,然后是一个或多个空格作为分隔,然后是一棵二叉树,二叉树采用上述的S-表达式形式给出。

    所有给出的二叉树表达式都是合法的,但表达式可能(由于太长)分布在多行,而且表达式里面可以含有空格。

    输入以文件结束标志EOF作为结束。

    输出

    Description

    LISP是最早的高级编程语言之一,FORTRAN是当今仍在使用的最老的计算机语言之一。"表"是LISP的基本数据结构,用它可以进一步表示其它的重要数据结构,如"树"。

    本题要做的是:判断用LISP语言的S-表达式来表示的一棵二叉树是否满足某个特性。

    给出一棵二叉树,节点都是整数。编一个程序,判断是否存在一条从根节点到叶子节点的路径,这条路经上节点的总和等于某个值。如下图所示,这棵二叉树有4条从根到叶子的路径,它们节点的总和分别是27,22,26和18。树枝都是弯弯向下,像一棵柳树。Alice看着这棵树,不知为什么,想起了柳永的歌。

    二叉树采用LISP语言的S-表达式来表示,格式如下:

    empty tree(空树) ::= ()

    tree(树) ::= empty tree (integer tree tree)

    上图的二叉树就可以表示为(5 (4 (11 (7 ( ) ( )) (2 ( ) ( )) ) ( )) (8 (13 ( ) ( )) (4 ( ) (1 ( ) ( )) ) ) ) 。

    注意到,以这种格式来表示的话,所有叶子都是这种形式:(integer ( ) ( ) ) 。

    由于空树不存在根到叶子的路径,那么,对空树查询是否存在某条路径上节点的总和等于某个数,答案都是否定的。

    Input

    输入有多组测试数据,格式都是 "整数 树"。

    每个测试数据首先是一个整数,然后是一个或多个空格作为分隔,然后是一棵二叉树,二叉树采用上述的S-表达式形式给出。

    所有给出的二叉树表达式都是合法的,但表达式可能(由于太长)分布在多行,而且表达式里面可以含有空格。

    输入以文件结束标志EOF作为结束。

    Output

    对每个测试用例(I 和T)输出一行结果。

    每一对 I ,T (I指的是上述的整数,T指的是上述的二叉树),如果T含有一条从根到叶子的路径,其节点总和等于I,则输出"yes";如果没有这样的路径,则输出"no"。

    Sample Input

    22 (5(4(11(7()())(2()()))()) (8(13()())(4()(1()()))))
    20 (5(4(11(7()())(2()()))()) (8(13()())(4()(1()()))))
    10 (3
      (2 (4 () () )
         (8 () () ) )
      (1 (6 () () )
         (4 () () ) ) )
    5 ()

    Sample Output

    yes
    no
    yes
    no

    Author

    样例输入

    22 (5(4(11(7()())(2()()))()) (8(13()())(4()(1()()))))
    20 (5(4(11(7()())(2()()))()) (8(13()())(4()(1()()))))
    10 (3
      (2 (4 () () )
         (8 () () ) )
      (1 (6 () () )
         (4 () () ) ) )
    5 ()

    样例输出

    yes
    no
    yes
    no

    提示

    作者


    路过

    雷人

    握手

    鲜花

    鸡蛋

    最新评论

    返回顶部