2 条题解

  • 1
    @ 2026-8-21 16:24:47
    
    #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;
    
    }
    
    
    • 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;

      }

      • 1

      信息

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