搜索60.。刚学搜索
  • 板块P2089 烤鸡
  • 楼主canwen
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/4/11 23:00
  • 上次更新2024/4/12 13:59:27
查看原帖
搜索60.。刚学搜索
1284815
canwen楼主2024/4/11 23:00
#include<bits/stdc++.h>
using namespace std;
int n;
int ans[20];
int all[6000][6000];
int xx=0;
void dfs(int dep,int sum){
	if(sum>n) return;
	if(dep==11&&sum==n){
		xx++;
		for(int i=1;i<=10;i++) all[xx][i]=ans[i];
		return;
	}
	for(int i=1;i<=3;i++){
		if(sum+i>n) break; 
		ans[dep]=i;
		sum+=i;
		dfs(dep+1,sum);
		sum-=i;
		ans[dep]=0;
	}
}
int main(){
	cin>>n;
	dfs(1,0);
	if(xx==0){
		cout<<0;return 0;
	}
	cout<<xx<<endl;
	for(int i=1;i<=xx;i++){
		for(int j=1;j<=10;j++) printf("%d ",all[i][j]);
		cout<<endl;
	}
	return 0;
}
2024/4/11 23:00
加载中...