zoukankan      html  css  js  c++  java
  • Uva 10562 看图写树

    题目链接:https://uva.onlinejudge.org/external/105/10562.pdf

    紫书P170

    直接在二维数组上做DFS,用的fgets函数读入数据,比较gets函数安全,但是会读入 ,在 DFS 的时候,下一个状态要 不等于空格,并且不等于 ;

    #include <bits/stdc++.h>
    using namespace std;
    
    const int Maxn = 200+10;
    char buf[Maxn][Maxn];
    
    int n;
    
    void dfs(int r,int c)
    {
        printf("%c(",buf[r][c]);
    
        if(r+1<n&&buf[r+1][c]=='|')
        {
            int i = c;
            while(i-1>=0&&buf[r+2][i-1]=='-')
                i--;
    
            while(buf[r+2][i]=='-'&&buf[r+3][i]!='')
            {
                //if(!isspace(buf[r+3][i]))     fgets会读入换行
                if(buf[r+3][i]!=' '&&buf[r+3][i]!='
    ')
                    dfs(r+3,i);
                i++;
            }
        }
    
        printf(")");
    }
    
    void solve()
    {
        n = 0;
        for(;;)
        {
            fgets(buf[n],Maxn,stdin);
            if(buf[n][0]=='#') break;
            else n++;
        }
        printf("(");
        if(n)
        {
            for(int i=0; i<strlen(buf[0]); i++)
            {
                if(buf[0][i]!=' ')
                {
                    dfs(0,i);
                    break;
                }
            }
        }
        printf(")
    ");
    }
    
    int main()
    {
        int t;
        fgets(buf[0],Maxn,stdin);
        sscanf(buf[0],"%d",&t);
        while(t--)
        {
            solve();
        }
        return 0;
    }
    View Code
  • 相关阅读:
    Vue单向数据流
    npm常用命令
    vue自定义指令
    slot的用法(Vue插槽)
    js闭包
    canvas 给画的多边形着色
    canvas画线
    canvas初体验
    canvas
    json
  • 原文地址:https://www.cnblogs.com/TreeDream/p/6063341.html
Copyright © 2011-2022 走看看