HRBUST 2085 囧 分型法
来源:互联网 发布:网络文化传媒公司 编辑:程序博客网 时间:2024/06/05 12:01
题目:http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=2085
代码:
#include <iostream>#include <stdio.h>#include <string.h>using namespace std;const int mapsize = 1000;void draw(const int n, char map[][mapsize], const int r, const int c){ int size = (1 << (n + 2)); map[r][c] = map[r + size - 1][c + size - 1] = map[r][c + size - 1] = map[r + size - 1][c] = '+'; for (int i = 1; i < size - 1; i++) { map[r][c + i] = map[r + size - 1][c + i] = '-'; map[r + i][c] = map[r + i][c + size - 1] = '|'; } if (n == 0) return; for (int i = 2; i < size / 2 - 1; i++) { map[r + i][c + size / 2 - i] = '/'; map[r + i][c + size / 2 + i - 1] = '\\'; } draw(n - 1, map, r + size / 2, c + size / 4);}int main(){ int casenum; cin >> casenum; while (casenum--) { int n; static char map[mapsize][mapsize]; cin >> n; memset(map,' ', sizeof(map)); draw(n, map, 0, 0); int size = (1 << (n + 2)); for (int i = 0; i < size; i++) { for (int j = 0; j < size; j++) printf("%c",map[i][j]); printf("\n"); }// putchar(10); } return 0;}
分析:
以前的分型是从一个小图形为基础即从1(++)开始,这道题直接从n(--)开始,把最大的图形打印出来,递归再把它的子图形打印出来。
刚开始只知道根分型法有关,不对呀,我操,根第一句话没关系呀,能从大图形打印出小图形,就能从小图形打印出大图形。
智商-100。
1 0
- HRBUST 2085 囧 分型法
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- Hrbust
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- HRBUST
- Hrbust 囧(输出图像囧)
- Hrbust 1073
- HRBUST 2250
- 分组交换 的理解
- 图的表示法
- Servlet的特点及运行过程
- Cg入门2:profile和基本数据类型
- Hadoop MapReduce的一些相关代码Code
- HRBUST 2085 囧 分型法
- android.net.http.AndroidHttpClient Android6.0 API23以后失效
- copssh的安装与卸载 不能正常启动问题解决
- 使用WCF来实现一个ShadowSocks客户端(三)
- SQL 时间查询整理
- RecyclerView实现九宫格和点击事件
- 数据库优化
- 带权树_weighttree_中后序建树
- 简单工厂、工厂方法、抽象工厂、策略模式、策略与工厂的区别