30分求教
查看原帖
30分求教
1379724
liuchenjia12345楼主2025/1/20 16:37

P2089烤鸡

30分求教

#1,#3,#5过了

#include<bits/stdc++.h>
using namespace std;
int n,a[1000],s,ans,s1[11][1000];
void dfs(int x,int b){
    if(x>10){
        if(b==n){
            ans++;
            for(int i=1;i<=10;i++)
            	s1[ans][i]=a[i];
        }
        return;
    }
    for(int i=1;i<=3;i++){
    	if(b+i>n){
    		continue;
		}
    	a[x]=i;
        dfs(x+1,b+i);
    }
}
int main(){
    
    cin>>n;
    dfs(1);
    cout<<ans<<endl;
    if(ans!=0)
    for(int i=1;i<=ans;i++){
    	for(int j=1;j<=10;j++){
    		cout<<s1[i][j]<<" ";
		}
		cout<<endl;
	}
}
2025/1/20 16:37
加载中...