第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛D 分形
来源:互联网 发布:淘宝助理在哪下载安装 编辑:程序博客网 时间:2024/05/21 09:24
问题 D: 简单的图形输出
时间限制: 1 Sec 内存限制: 30 MB
提交: 526 解决: 103
[提交][状态][讨论版]
题目描述
谢尔宾斯基三角形是一种分形,它的构造过程是这样的:
1.取一个实心的三角形。(多数使用等边三角形)
2.沿三边中点的连线,将它分成四个小三角形。
3.去掉中间的那一个小三角形。
4.对其余三个小三角形重复1。
我们想尝试用斜线、反斜线和下划线画出谢尔宾斯基三角,假设最小的三角是长这样的:
/\
/__\
具体规律详见样例。
输入
多组数据输入输出。每行有一个整数n(1<=n<=10),表示执行了一次操作1,n=0时结束输入。
输出
画出执行n次操作1后的图形,调整你的输出到最左端(底边的第一个斜杠在第一列)。输出不能包含任何尾随空格。在每个测试用例后打印空行。
样例输入
3
2
1
0
样例输出
/\
/__\
/\ /\
/\/\
/\ /\
/\ /\
/\ /\ /\ /\
/\/\/\/\
/\
/__\
/\ /\
/\/\
/\
/__\
题解:原图形较复杂的分形,还是分形的基本做法。确定位置,确定改变量的大小。剩下都是套路。
#include<iostream>#include<stdio.h>#include<stdlib.h>#include<algorithm>#include<map>#include<vector>#include<string.h>#define ll long longusing namespace std;const int N = 1e6+7;const int MOD = 1e9+7;char a[3333][3333];int pow(int x,int y){ int ans=1; while(y) { if(y&1) ans*=x; x*=x,y>>=1; } return ans;}int n;void dfs(int cnt,int x,int y){ if(cnt==1) { a[x][y]='/'; a[x][y+1]='\\'; a[x+1][y-1]='/'; a[x+1][y]='_'; a[x+1][y+1]='_'; a[x+1][y+2]='\\'; return ; } int sz=pow(2,cnt-1); dfs(cnt-1,x,y); dfs(cnt-1,x+sz,y-sz); dfs(cnt-1,x+sz,y+sz);}int main(){ bool flag=false; while(cin>>n) { if(flag)puts(""); flag=true; if(n==0) break; memset(a,' ',sizeof(a)); int l=pow(2,n); int r=pow(2,n+1); dfs(n,1,l); for(int i=1;i<=l;i++) { for(int j=r;j;j--) { if(a[i][j]!=' ') { a[i][j+1]='\0'; break; } } } for(int i=1;i<=l;i++) puts(a[i]+1); }}
阅读全文
0 0
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛D 分形
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛A(组合数学)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛B(排序)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛E(线段树)
- 第四届“图灵杯”NEUQ-ACM 程序设计竞赛(团队赛)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛C(大数斐波那契数)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛F(矩阵快速幂)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛J(字典树 or map)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)—A
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)【solved 7 / 10】
- **第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)C粉丝与汉诺塔
- 图灵杯-第四届“图灵杯”NEUQ-ACM 程序设计竞赛-D-简单图形输出
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛总结 【8/10】
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛部分题解
- 图灵杯-第四届“图灵杯”NEUQ-ACM 程序设计竞赛-C-来简单地数个数
- 图灵杯-第四届“图灵杯”NEUQ-ACM 程序设计竞赛-J-简单的变位词
- 图灵杯-第四届“图灵杯”NEUQ-ACM 程序设计竞赛-E-简单的RMQ
- 图灵杯-第四届“图灵杯”NEUQ-ACM 程序设计竞赛-A-谷神的赌博游戏
- HDU-2042 不容易系列之二
- TensorFlow教程01:MNIST实验——MNIST介绍
- 内部排序算法
- 从高考到程序员--------你到底在追求着什么?------串烧似的文章
- ES2016 & ES2017
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛D 分形
- Linux下C高手成长过程----经典书籍推荐
- angualrjs 学习笔记初篇
- c++ 学习笔记之复合数据类型
- php运行原理如何理解
- c++ 学习笔记初篇
- c++ 学习笔记之程序结构
- c++ 学习笔记之语言基础
- Redis适用场合