码迷,mamicode.com
首页 > 其他好文 > 详细

UVa 10562 Undraw the Trees

时间:2015-10-19 10:46:27      阅读:200      评论:0      收藏:0      [点我收藏+]

标签:

题意:

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

分析:

  直接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]!=‘\0‘)
{
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(")\n");
}
int main()
{
int T;
scanf("%d",&T);
getchar();
while(T--)
{
solve();
}
}

UVa 10562 Undraw the Trees

标签:

原文地址:http://www.cnblogs.com/137033036-wjl/p/4891155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!