why!why!

null him 2020-12-10 22:01:24 4
#include<iostream>
#include<cstdio>
using namespace std;
int n,m;
int a[30],b[255];
void dfs(int step){
    if(step==m+1){
        for(int i=1;i<=m;i++){
            cout<<a[i]<<' ';
        }
        cout<<endl;
        return ;
    }
    else{
        for(int i=1;i<=n;i++){
            if(b[i]==0 && i>=a[step-1]){
                a[step]=i;
                b[i]=1;
                dfs(step+1);
                b[i]=0;
            }
        }
    }
}
int main(){
    freopen("A.in","r",stdin);
    freopen("A.out","w",stdout);
    cin>>n>>m;
    dfs(1);
    return 0;
}
{{ vote && vote.total.up }}

共 9 条回复

root 站长

没事,这不是成长啦嘛

null him

这篇丢人的帖子我要删了

Super_Cube Legendary
#inclde<stdio>
Int n,m,a[100000005];void dfs(Int dep,Int las){if(dep>m){for(Int i=1;i<=m;printf("%D ",a[i++]));putchr("\n");retrn;}for(Int i=las;i<=n;a[dep]=I,dfs(dep+1,++I));}int mian(){fropen("B.in","r",stdin);frepen("B.out","w",stdout);scanf("%D%D",n,m);dfs(1,1);while(1);}

PS:可读性极高的版本+++自动CE机+++易于发现的小BUG
自己慢慢改改吧,防止抄袭(^_^)
kongchenxu2024

不要用b数组

kongchenxu2024

用printf!!

kongchenxu2024

用cout会超时

root 站长

递归的数字超过 20 就可能导致超时,这边建议您使用 递推 for 循环试试~

chen_zhe 沙雕

您不知道Liuseroj题目板没人吗

null him

咋还超时了呢?