http://poj.org/problem?id=2083
一道我认为有点恶心的dfs 刚开始没有初始化 用G++交 一直TLE 后来用了C++竟然是wa 那这肯定是我的问题了
最后发现没有初始化
dfs还是感觉不是太懂 什么时候才能真正学会
#include<stdio.h> #include<string.h> #include<algorithm> #include<stdlib.h> #include<math.h> #include<iostream> using namespace std; #define N 1100 #define INF 0xffffffff #define memset(a,b) memset(a,b,sizeof(a)) char str[N][N]; void DFS(int n,int x,int y) { if(n==1) { str[x][y]=‘X‘; return; } int h=pow(3.0, n-2); DFS(n-1,x,y);///左上角 DFS(n-1,x,y+2*h);///右上角 DFS(n-1,x+h,y+h);///中间 DFS(n-1,x+2*h,y);///左下角 DFS(n-1,x+2*h,y+2*h);///右下角 } int main() { memset(str,‘ ‘); DFS(7,1,1); int m; while(scanf("%d",&m),m!=-1) { int d=pow(3.0,m-1); for(int i=1;i<=d;i++) { for(int j=1;j<=d;j++) { printf("%c",str[i][j]); } printf("\n"); } printf("-\n"); } return 0; }
时间: 2024-10-21 00:37:38