zoukankan      html  css  js  c++  java
  • 6-17 看图写树 uva10562

    非常好的dfs题  有很多细节

    关于‘ ’  ‘0’  ’ ‘  的处理  他们都属于isspace函数

    其中

    while(buf[x+2][i]=='-'&&buf[x+3][i]!='')  很重要    &&后面去掉的话会自动以为目标进行dfs  得到答案不止一行!!!

    判断不是空格用!isspace()

    fgets用于读取行 在string不合适的时候  并且同样会读取换行符

    if(n){ for(int i=0;i<strlen(buf[0]);i++)
    {
    if(buf[0][i]!=' '){dfs(0,i);break;}
    }

    }    //如果去掉if(n)    会错    debug了好久!!!

    #include<bits/stdc++.h>
    using namespace std;
    
    char buf[1000][1000];
    
    int n;
    
    void dfs(int x,int y)
    {
        printf("%c(",buf[x][y]);
        if(buf[x+1][y]=='|')
        {
            int i=y;
            while((i-1)>=0&&buf[x+2][i-1]=='-')i--;
    
            while(buf[x+2][i]=='-'&&buf[x+3][i]!='')//11111
            {
                if(!isspace(buf[x+3][i]))dfs(x+3,i);
                i++;
            }
    
    
        }
        printf(")");
    
    }
    
    
    int main()
    {
      
         int cas;cin>>cas;getchar();
        while(cas--)
        {
             memset(buf,' ',sizeof(buf));
        
            int i=0; n=0;
    
            for(;;){
                fgets(buf[n],210,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(")
    ");
       }
        return 0;
    }
    View Code
  • 相关阅读:
    linux mysql添加用户名并实现远程访问
    bootstrap-datetimepicker时间控件的使用
    jquery图片左右来回循环飘动
    jquery 全选获取值
    设置linux编码utf-8
    nginx 自签名https
    Laravel 邮件配置
    memcachq队列安装
    开发与运维使用常用工具
    composer配置和安装php框架
  • 原文地址:https://www.cnblogs.com/bxd123/p/10312098.html
Copyright © 2011-2022 走看看