zoukankan      html  css  js  c++  java
  • 哈理工oj 1373Leyni, LOLI and Leaders

    链接:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1373

    这道题是给出一些父子关系,并且关系可以传递,要快速确定出来两个点之间的具体的关系是什么,或者是没有关系,这道题要用到深度优先搜索的开始时间和结束时间,具体内容可以参考算法导论,用d[u]表示u节点的开始时间,f[u]表示u节点的结束时间,则如果,d[u]<d[v]<f[v]<f[u]则可以确定v是u的子节点

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 #define N 100005
     4 int v[N];
     5 int head[N];
     6 int d[N];
     7 int f[N];
     8 int t;
     9 int time;
    10 struct edge
    11 {
    12     int v;
    13     int next;
    14 };
    15 edge e[N];
    16 void init()
    17 {
    18     t=0;
    19     time=0;
    20     memset(head,-1,sizeof(head));
    21 }
    22 void add(int u,int v)
    23 {
    24     e[t].v=v;
    25     e[t].next=head[u];
    26     head[u]=t++;
    27 }
    28 void dfs(int u)//深搜
    29 {
    30     d[u]=time++;
    31     int i;
    32     for(i=head[u];i>=0;i=e[i].next)
    33     dfs(e[i].v);
    34     f[u]=time++;
    35     //printf("%d %d %d\n",u,d[u],f[u]);
    
    36 }
    37 int main()
    38 {
    39     int n,q;
    40     int i,m;
    41     int temp;
    42     scanf("%d",&m);
    43     int a,b;
    44     int root;
    45     while(m--)
    46     {
    47         init();
    48         scanf("%d",&n);
    49         for(i=1;i<=n;i++)
    50         {
    51             scanf("%d",&temp);
    52             if(!temp)
    53             root=i;
    54             else
    55             add(temp,i);
    56         }
    57         dfs(root);
    58         scanf("%d",&q);
    59         for(i=0;i<q;i++)
    60         {
    61             scanf("%d%d",&a,&b);
    62             if(d[a]<d[b]&&f[a]>f[b])
    63             printf("%d>%d",a,b);
    64             else if(d[a]>d[b]&&f[a]<f[b])
    65             printf("%d<%d",a,b);
    66             else
    67             printf("%d<>%d",a,b);
    68             printf("\n");
    69         }
    70     }
    71     return 0;
    72 }
  • 相关阅读:
    VMware vSphere企业运维实战
    Unity 3D和2D手机游戏开发
    电商店铺装修推广教程
    uiiamgeview 设置圆角
    cgcolor regcolor tttatribute.
    谈待遇,
    不会自己 加的,也不会自己连线,
    代理,其他的类可以实现,而这个类不能实现,
    代理,
    TTTattribute 缺少 coretext
  • 原文地址:https://www.cnblogs.com/caozhenhai/p/2465457.html
Copyright © 2011-2022 走看看