2019独角兽企业重金招聘Python工程师标准>>>

有点dfs的感觉,树是连通的,可以从根节点一直追踪到叶子。有些比如空树的特殊情况要小心。

#include<stdio.h>
#include<string.h>
#include<ctype.h>#define MAX 210char tree[MAX][MAX];
int idx;void drawTree(int i, int j) {if (tree[i + 1][j] == '|') {printf("%c", tree[i][j]);tree[i][j] = '-';int s, t;for (s = j; tree[i + 2][s] == '-'; s--);for (t = j; tree[i + 2][t] == '-'; t++);s++;t--;printf("(");int p;for (p = s; p <= t; p++) {if (isprint(tree[i + 3][p]) && tree[i + 3][p] != '-'&& tree[i + 3][p] != '|' && tree[i + 3][p] != ' '&& tree[i + 3][p] != '#')drawTree(i + 3, p);}printf(")");} else {printf("%c()", tree[i][j]);tree[i][j] = '-';}return;
}int main() {int cases;scanf("%d", &cases);while (cases--) {memset(tree, 0, sizeof(tree));idx = 0;while (gets(tree[idx]) != NULL ) {if (tree[idx][0] == '#')break;elseidx++;}int i, j;int blank = 1;for (i = 0; i < MAX; i++) {for (j = 0; j < MAX; j++) {if (isprint(tree[i][j]) && tree[i][j] != '-'&& tree[i][j] != '|' && tree[i][j] != ' '&& tree[i][j] != '#') {blank = 0;printf("(");drawTree(i, j);printf(")\n");}}}if(blank)printf("()\n");}return 0;
}

转载于:https://my.oschina.net/jdflyfly/blog/283617

uva 10562 - Undraw the Trees相关推荐

  1. UVa 10562 Undraw the Trees 看图写树

    转载请注明: 仰望高端玩家的小清新 http://www.cnblogs.com/luruiyuan/ 题目大意: 题目传送门:UVa 10562  Undraw the Trees 给定字符拼成的树 ...

  2. uva 10562 Undraw the Trees

    题意:给出一棵树,让你用另一种方法表达出来 解题思路:深搜思路(注意为空的情况)---这道题对它的所有情况还是没有考虑好! 解题代码: // File Name: uva10562.c // Auth ...

  3. Uva 10562 看图写树

    题目链接:https://uva.onlinejudge.org/external/105/10562.pdf 紫书P170 直接在二维数组上做DFS,用的fgets函数读入数据,比较gets函数安全 ...

  4. POJ 2229 Sumsets(递推,找规律)

    构造,递推,因为划分是合并的逆过程,考虑怎么合并. 先把N展开成全部为N个1 然后合并,因为和顺序无关,所以只和出现次数有关 情况有点多并且为了避免重复,分类,C[i]表示序列中最大的数为2^i时的方 ...

  5. 紫书《算法竞赛入门经典》

    紫书<算法竞赛入门经典>题目一览 第3章 数组和字符串(例题) UVA 272 TEX Quotes UVA 10082 WERTYU UVA 401 Palindromes UVA 34 ...

  6. 算法竞赛入门竞赛 入门经典 第六章 个人记录

    UVa 210 并行程序模拟(放弃 || 待补) 没看懂题意,但是有百度了一下duque 算是对duque有了一个大致的认识和了解 当然也有尝试. 本来想着去hdu找一些duque的题 结果 好像可以 ...

  7. 提取了下刘汝佳推荐的题号...

    今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started    10055 - Hashmat the Brave Warrior ...

  8. 【日常学习】【指针二叉树+BFS】Uva - 122 Trees on the level题解

    作为一个传统型的树盲,不得不把树重新学习一次.通常我是不太喜欢指针的,但这样写下来感觉还能接受. 题目来源是ACM DUKE 1993 Uva 122 杭电也有这道题  这道题目基本是照着ruka抄来 ...

  9. 【学习笔记】树形结构基础

    目的 mark一下紫书上的例题与操作,以备复习. 内容 各种套路 UVa 122 #include <bits/stdc++.h> using namespace std; char s[ ...

最新文章

  1. 高效Tensor张量生成
  2. c语言知识重温及深入
  3. 计算机蓝屏代码0xc0000020,Win10运行程序提示“损坏的映像 错误0xc0000020”怎么解决?...
  4. 《Python入门到精通》文件操作
  5. Oracle Decode()函数和CASE语句的比较
  6. python cnn模型_字符级CNN分类模型的实现
  7. A3的PDF试卷怎么对半拆分成A4打印?
  8. 拥有百万粉丝的大牛讲述学Android的历程程。看看你缺了哪些?
  9. 集合论的ZFC公理系统
  10. sqldblink建好不能查询_眉山这个停车场显示有车位却不能停?原来是……
  11. 桌面运维常见问题解决办法③
  12. c 添加mysql表单的一行数据类型,MySQL InnoDB表行格式及压缩
  13. 蓝桥杯练习题 Fibonacci数列
  14. shell编程-数组的使用
  15. elasti 时间范围查询
  16. Bitly野心彰显,发布实时热门链接引擎Realtime
  17. 全球及中国网络漫画行业发展前景及未来趋势调研报告2021年版
  18. 社交类产品创业难点在哪儿?
  19. 力矩 torque详解
  20. 《企业自主搞定ERP》试读:第三章-成功案例

热门文章

  1. Android 自动扫描歌曲,Android扫描本地音乐文件开发案例分享
  2. mpp文件转换excel_原来只要按下这个键,Word、PDF、PPT、Excel文件随你互相转换
  3. seven days later
  4. 【BZOJ3555】企鹅QQ,第一次正确的使用哈希A题
  5. MySQL怎么查游戏内邮件附件_怎么查询游戏mysql账号密码
  6. bzoj4415 [Shoi2013]发牌 线段树
  7. 2017.5.10 华容道 失败总结
  8. 2017.5.6 表达式的值 思考记录
  9. 【英语学习】【Daily English】U14 Transportation L03 Sorry for keeping you waiting
  10. 【英语学习】【WOTD】leviathan 释义/词源/示例