求助这个dfs为什么不能处理0的情况
  • 板块P2089 烤鸡
  • 楼主wangyishan
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/12/23 09:48
  • 上次更新2023/10/24 06:53:49
查看原帖
求助这个dfs为什么不能处理0的情况
612044
wangyishan楼主2022/12/23 09:48

rt,代码如下:

#include<iostream>
using namespace std;
int n;
int a[11];
int ans[100010][11],cnt=0;
void dfs(int x,int px){
    if(px==11&&x==n){
        cnt++;
        for(int i=1;i<=10;i++){
            ans[cnt][i]=a[i];
        }

        return ;
    }
    if(x>n)return ;
    a[px]=1;
    dfs(x+1,px+1);
    a[px]=2;
    dfs(x+2,px+1);
    a[px]=3;
    dfs(x+3,px+1);
    a[px]=0;
    return;
}
int main(){
    cin>>n;
    if(n>30){
        cout<<0;return 0;
    }//不加这一段一直有三个点TLE……???
    dfs(0,1);
    cout<<cnt<<endl;
    for(int i=1;i<=cnt;i++){
        for(int j=1;j<=10;j++){
            cout<<ans[i][j]<<" ";
        }
        cout<<endl;
    }
    return 0;
}
2022/12/23 09:48
加载中...