• 福州月赛2057 DFS


    题意:告诉你族谱,然后Q条查询s和t的关系,妈妈输出M,爸爸输出F;

    题目地址:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=78233#problem/D

    如查询8 2输出 0 FM(0表示8是2的祖辈)

    思路:dfs,bfs都行吧,但我不知道该怎么用bfs生成图,最直接的还是dfs;遍历二叉树,看是否在同一棵树中

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <string>
     5 #include <sstream>
     6 #include <queue>
     7 #include <vector>
     8 #define repu(i,a,b) for(int i=a;i<b;i++)
     9 using namespace std;
    10 #define N 100010
    11 int vis[N];
    12 int dir[][2] = {{1,0},{-1,0},{0,1},{0,-1}};
    13 int fa[N],ma[N];
    14 char st[N];
    15 int dfs(int s,int l,int e)
    16 {
    17     if(s == 0)
    18         return 0;
    19     if(s == e)
    20         return 1;
    21     st[l] = 'F';
    22     if(dfs(fa[s],l+1,e))///如果是fa,就根据fa找下去
    23         return 1;
    24     st[l] = 'M';
    25     if(dfs(ma[s],l+1,e))
    26         return 1;
    27     return 0;
    28 }
    29 int main()
    30 {
    31     int T,n,Q,a,b,c,s,e;
    32     scanf("%d",&T);
    33     while(T--)
    34     {
    35         memset(fa,0,sizeof(fa));
    36         memset(ma,0,sizeof(ma));
    37         scanf("%d",&n);
    38         repu(i,0,n/2)
    39         {
    40             scanf("%d%d%d",&a,&b,&c);
    41             fa[a] = b;
    42             ma[a] = c;
    43         }
    44         memset(st,0,sizeof(st));
    45         scanf("%d",&Q);
    46         while(Q--)
    47         {
    48             scanf("%d%d",&s,&e);
    49             if(dfs(s,0,e))
    50                 printf("1 %s
    ",st);
    51             else if(dfs(e,0,s))
    52                 printf("0 %s
    ",st);
    53             else
    54                 printf("Relative
    ");
    55         }
    56     }
    57     return 0;
    58 }
    View Code
  • 相关阅读:
    Win10上使用Linux Subsystem配置cuckoo sandbox
    Windows下编译OpenSSL
    64位使用windbg获取Shadow SSDT
    [转载]VS2010怎样打开VS2013或者VS2015建立的工程
    Critical Regions和Guarded Regions区别
    Windows7 x64 了解堆
    网DAI之家简单爬取
    javascript 练习题目答案2
    javascript 练习题目答案1
    javascript 练习题目答案
  • 原文地址:https://www.cnblogs.com/ACMERY/p/4506812.html
Copyright © 2020-2023  润新知