Fractal---POJ2083(dfs)

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

Fractal---POJ2083(dfs)的相关文章

递归算法——BOX FRACTAL 盒分形(POJ2083)

问题 盒分形定义如下: 1度的盒分形为: X 2度的盒分形为: X X X X X 如果B(n-1)表示n-1度的盒分形,则n度的盒分形递归定义如下: B(n-1) B(n-1) B(n-1) B(n-1) B(n-1) 请画出n度的盒分形的图形 输入 每行给出一个不大于7的正整数.输入的最后一行以-1表示输入结束 输出 对于每个测试用例,出书用'X'标记的盒分形.在每个测试用例后输出包含一个短划线"-"的一行. 分析 n度的盒分形的规模为3^(n-1),即n度的盒分形图为一个长宽为3

poj2083 Fractal

我一开始的想法是间断性的输出空格和solve(k-1) 但是发现问题很大. 雨菲:可以用一个数组保存啊 我:那不爆了? 雨菲:不会爆. 我一算:729 × 729,还真没爆. 然后就直接WA了...... 仔细观察,发现要输出X,而我输出x 然后就A了. 大水题. 1 #include <cstdio> 2 /** 3 made with Unity 4 poj 2083 5 */ 6 using namespace std; 7 const int N = 729; 8 char G[N][

$Poj2083/AcWing118\ Fractal$ 模拟

$AcWing$ $Sol$ 一年前做过差不多的南蛮图腾,当时做出来还是很有成就感的$OvO$ $N<=7$,就是模拟模拟,预处理一下,$over$ $Code$ #include<bits/stdc++.h> #define il inline #define Rg register #define go(i,a,b) for(Rg int i=a;i<=b;++i) #define yes(i,a,b) for(Rg int i=a;i>=b;--i) #define m

Fractal(递归,好题)

Fractal Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 8341   Accepted: 3965 Description A fractal is an object or quantity that displays self-similarity, in a somewhat technical sense, on all scales. The object need not exhibit exactly

POJ 题目2083 Fractal(分治)

Fractal Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 7937   Accepted: 3807 Description A fractal is an object or quantity that displays self-similarity, in a somewhat technical sense, on all scales. The object need not exhibit exactly

解救小哈——DFS算法举例

一.问题引入 有一天,小哈一个人去玩迷宫.但是方向感不好的小哈很快就迷路了.小哼得知后便去解救无助的小哈.此时的小哼已经弄清楚了迷宫的地图,现在小哼要以最快的速度去解救小哈.那么,问题来了... 二.问题的分析 首先我们用一个二维数组来存储这个迷宫,刚开始的时候,小哼处于迷宫的入口处(1,1),小哈在(p,q).其实这道题的的本质就在于找从(1,1)到(p,q)的最短路径. 此时摆在小哼面前的路有两条,我们可以先让小哼往右边走,直到走不通的时候再回到这里,再去尝试另外一个方向. 在这里我们规定一

【BZOJ4942】[Noi2017]整数 线段树+DFS(卡过)

[BZOJ4942][Noi2017]整数 题目描述去uoj 题解:如果只有加法,那么直接暴力即可...(因为1的数量最多nlogn个) 先考虑加法,比较显然的做法就是将A二进制分解成log位,然后依次更新这log位,如果最高位依然有进位,那么找到最高位后面的第一个0,将中间的所有1变成0,那个0变成1.这个显然要用到线段树,但是复杂度是nlog2n的,肯定过不去. 于是我在考场上yy了一下,这log位是连续的,我们每次都要花费log的时间去修改一个岂不是很浪费?我们可以先在线段树上找到这段区间

uva1103(dfs)

UVA - 1103 还是没写好,,看的别人的 1 #include <iostream> 2 #include <cstdio> 3 #include <cmath> 4 #include <cstring> 5 #include <algorithm> 6 #include <cstdlib> 7 #include <stack> 8 #include <cctype> 9 #include <str

poj 1088 滑雪 DP(dfs的记忆化搜索)

题目地址:http://poj.org/problem?id=1088 题目大意:给你一个m*n的矩阵 如果其中一个点高于另一个点 那么就可以从高点向下滑 直到没有可以下滑的时候 就得到一条下滑路径 求最大的下滑路径 分析:因为只能从高峰滑到低峰,无后效性,所以每个点都可以找到自己的最长下滑距离(只与自己高度有关).记忆每个点的最长下滑距离,当有另一个点的下滑路径遇到这个点的时候,直接加上这个点的最长下滑距离. dp递推式是,dp[x][y] = max(dp[x][y],dp[x+1][y]+

蓝桥杯 大臣的旅费_树的最长度_两次DFS

#include <iostream> #include <cstdio> #include <cstdlib> #include <algorithm> #include <cstring> #include <functional> #include <vector> using namespace std; const int maxn = 1000000 + 10; const int INF = 10000000