zoukankan      html  css  js  c++  java
  • UVa 10562 Undraw the Trees

    题意:

      将树的关系用字符串的形式给出

    分析:

      直接dfs搜索,第i行第j个如果是字母,判断i+1行j个是不是'|'是的话在第i+2行找第一个'-',找到后在第i+3行找字母,重复进行。

    代码:

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    const int maxn=210;
    int n;
    char a[maxn][maxn];
    void dfs(int r,int c)
    {
    printf("%c(",a[r][c]);
    if(r+1<n&&a[r+1][c]=='|')
    {
    int i=c;
    while(i-1>=0&&a[r+2][i-1]=='-')
    i--;
    while(a[r+2][i]=='-'&&a[r+3][i]!='')
    {
    if(!isspace(a[r+3][i]))
    dfs(r+3,i);
    i++;
    }
    }
    printf(")");
    }
    void solve()
    {
    n=0;
    while(1)
    {
    gets(a[n]);
    if(a[n][0]=='#')
    break;
    else
    n++;
    }
    printf("(");
    if(n)
    {
    for(int i=0;i<=strlen(a[0]);i++)
    {
    if(a[0][i]!=' ')
    {
    dfs(0,i);
    break;
    }
    }
    }
    printf(") ");
    }
    int main()
    {
    int T;
    scanf("%d",&T);
    getchar();
    while(T--)
    {
    solve();
    }
    }
  • 相关阅读:
    37. 解数独
    皮尔逊相关系数的计算以及数据的描述性统计
    商业微信小程序开发实战---1
    51. N皇后
    拟合算法
    216. 组合总和 III
    打印心性
    指针
    第五天
    循环 和 宏
  • 原文地址:https://www.cnblogs.com/137033036-wjl/p/4891155.html
Copyright © 2011-2022 走看看