第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛D 分形
2017-06-14 21:17
309 查看
问题 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
样例输出
/\
/__\
/\ /\
/\/\
/\ /\
/\ /\
/\ /\ /\ /\
/\/\/\/\
/\
/__\
/\ /\
/\/\
<
4000
p>/\
/__\
题解:原图形较复杂的分形,还是分形的基本做法。确定位置,确定改变量的大小。剩下都是套路。
时间限制: 1 Sec 内存限制: 30 MB
提交: 526 解决: 103
[提交][状态][讨论版]
题目描述
谢尔宾斯基三角形是一种分形,它的构造过程是这样的:
1.取一个实心的三角形。(多数使用等边三角形)
2.沿三边中点的连线,将它分成四个小三角形。
3.去掉中间的那一个小三角形。
4.对其余三个小三角形重复1。
我们想尝试用斜线、反斜线和下划线画出谢尔宾斯基三角,假设最小的三角是长这样的:
/\
/__\
具体规律详见样例。
输入
多组数据输入输出。每行有一个整数n(1<=n<=10),表示执行了一次操作1,n=0时结束输入。
输出
画出执行n次操作1后的图形,调整你的输出到最左端(底边的第一个斜杠在第一列)。输出不能包含任何尾随空格。在每个测试用例后打印空行。
样例输入
3
2
1
0
样例输出
/\
/__\
/\ /\
/\/\
/\ /\
/\ /\
/\ /\ /\ /\
/\/\/\/\
/\
/__\
/\ /\
/\/\
<
4000
p>/\
/__\
题解:原图形较复杂的分形,还是分形的基本做法。确定位置,确定改变量的大小。剩下都是套路。
#include<iostream> #include<stdio.h> #include<stdlib.h> #include<algorithm> #include<map> #include<vector> #include<string.h> #define ll long long using 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); } }
相关文章推荐
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛B(排序)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛F(矩阵快速幂)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛J(字典树 or map)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛A(组合数学)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)【solved 7 / 10】
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)—A
- **第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)C粉丝与汉诺塔
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛 E: 简单的RMQ【线段树】
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛 C: 来简单地数个数【Java大数】
- 第四届“图灵杯”NEUQ-ACM 程序设计竞赛(团队赛)
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛 A: 谷神的游戏【思维+组合数学】
- 华中农业大学第四届程序设计大赛网络同步赛Problem J: Arithmetic Sequence
- [HZAU]华中农业大学第四届程序设计大赛网络同步赛
- 华中农业大学第四届程序设计大赛网络同步赛Problem I: Catching Dogs
- 华中农业大学第四届程序设计大赛网络同步赛-1020: Arithmetic Sequence,题挺好的,考思路;
- 华中农业大学第四届程序设计大赛网络同步赛 D题 Robbing Red Packets
- hrbustojE.Mod(第六届程序设计团队赛网络同步赛)
- 师创杯”山东理工大学第九届ACM程序设计竞赛(网络同步赛)--I皮卡丘的梦想2
- 华中农业大学第四届程序设计大赛网络同步赛 J
- 华中农业大学第四届程序设计大赛网络同步赛