1 条题解

  • 0
    @ 2026-7-20 9:14:45

    #include <bits/stdc++.h>

    using namespace std;

    int n,ans[15000][15],sum,a[11];

    void f(int t,int m){

    if(t>10){

    if(m==n){
    	sum++;
    	for(int i=1;i<=n;i++){
    		ans[sum][i]=a[i];
    	}
    }
    return;
    

    }

    for(int i=1;i<=3;i++){
    	if(m+i>n) break;
    	a[t]=i;
    	f(t+1,m+i);
    	a[t]=0;
    }
    

    }

    int main(){

    cin>>n;
    f(1,0);
    cout<<sum<<endl;
    for(int i=1;i<=sum;i++){
    for(int j=1;j<=10;j++){
    	cout<<ans[i][j]<<" ";
    }
    cout << endl;
    }
    

    return 0;

    }

    信息

    ID
    1236
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    54
    已通过
    13
    上传者