问题标题: 1050,我0分!

1
1
已解决
王春雨
王春雨
新手守护
新手守护
void dfs(int t)
{
    if(t==n+1)
    {
        for(int i=1;i<=n;i++)
        {
            printf("%c\n",a[i]);
        }
        ans++;
        return ;
    } 
    for(int i=1;i<=3;i++)
    {
        if(t<4 || i!=a[t-2] || a[t-1]!=a[t-3])
        {
            a[t]=i;
            dfs(t+1);
        }
    } 
}

 


2
已采纳
黄俊博
黄俊博
资深光能
资深光能

注意,这里有一个巨大大大大大大大大的坑,我也掉过,

每一个字母后面有一个空格,重要的事说三遍:空个空格空格!!!

望采纳,谢谢。

黄俊博在2018-01-28 19:04:06追加了内容

也许,楼下的人说的也有对的地方,我只是说一下输出格式,这样例太坑了,我试了1小时。

黄俊博在2018-01-29 14:22:34追加了内容
  算了,核心来了。 
 if(t>n)
    {
        total++;
        输出;
        return ;
    }
    if(t>3)
    {
        for(char i='A';i<='C';i++)
        {
            if(a[t-2]!=i || a[t-3]!=a[t-1])
            {
                a[t]=i;
                搜索
            }
        }
    }
    else
    {
        for(char i='A';i<='C';i++)
        {
            a[t]=i;
            搜索
        }
    }
}
3
酷町猫
酷町猫
缔造者之神
缔造者之神

请规范你的提问格式哦

2
葛新
葛新
资深守护
资深守护
search(int t) {
    if(t>n) {
        print;
        return;
    }
    for (i='a'; i<='c'; i++) {
        if (i != result[t-2]) || (result[t-1] != result[t-3]) {
            result[t] := i;
            search(t+1);
        }
    } 
}

伪代码,思路大体是这样

1
蒋智航
蒋智航
高级天翼
高级天翼

每一个字母后面有一个空格

0
阮俊雄
阮俊雄
新手光能
新手光能

你搜索算法写错了

这是模版

0
0
0
0
0
我要回答