zoukankan      html  css  js  c++  java
  • 2545 ACM 博客 比较树的路径长短

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2545
    题意:比较树的路径长短
    思路:利用数组存入父节点的值,
    例如:
    5 2
    1 2
    1 3
    3 4
    3 5
    4 2
    查找 4 进行了 3 4和1 3 两步,如何判断到达了根节点根节点必然没有1 1类似相同的两项,于是初始化数组parent[i]=i;当x=parent[x]时到达根节点.。

    基础知识扩展
    puts()函数只用来输出字符串,没有格式控制,里面的参数可以直接是字符串或者是存放字符串的字符数组名。
    printf()函数的输出格式很多,可以根据不同格式加转义字符,达到格式化输出。

    puts()函数的作用与语句printf(“%s ”,s);的作用形同。
    例子:

    ①:

    int main( void )
    {
    puts( “Hello world from puts!” ); //字符串,最后隐含带有’’字符
    }
    Output
    Hello world from puts!

    ②:

    int main()
    {
    static char a[] = {‘H’,’I’,’!’,’!’};
    puts(a);
    }
    则输出 Hi!!烫烫烫烫烫烫烫烫烫烫烫烫dhaklhdwuhdaghdagdak… (后面都是乱码)

    原因: a在结尾处缺少一个空字符(’’), 所以它不是一个串,这样, puts() 就不知道什么时候停止输出, 它将会把 a 后面内存单元中的内容都打印出, 直到它在什么地方碰到了一个空字符为止。

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    
    int parent[100010];
    
    int get(int t)
    {
          int num=0;
          while(t!=parent[t])
          {
             t=parent[t];
             num++;     }
         return num;
    }
    int main()
     {
         int n,m;
         while(~scanf("%d%d",&n,&m)&&n||m)
         {
             int a,b,i,x,y;
             for(i=1;i<=n;i++)
                 parent[i]=i;
             for(i=1;i<n;i++)
             {
                 scanf("%d%d",&a,&b);
                 parent[b]=a;
             }
             while(m--)
             {
                 scanf("%d%d",&x,&y);
                 int px=get(x);
                 int py=get(y);
                 if(px<=py)
                    puts("lxh");
                else
                     puts("pfz");
             }
         }
     }  
  • 相关阅读:
    Laravel 初始化
    ant design pro 左上角 logo 修改
    请求到服务端后是怎么处理的
    Websocket 知识点
    王道数据结构 (7) KMP 算法
    王道数据结构 (6) 简单的模式匹配算法
    王道数据结构 (4) 单链表 删除节点
    王道数据结构 (3) 单链表 插入节点
    王道数据结构 (2) 单链表 尾插法
    王道数据结构 (1) 单链表 头插法
  • 原文地址:https://www.cnblogs.com/CheeseIce/p/9588678.html
Copyright © 2011-2022 走看看