本文主要是介绍洛谷-P2089 烤鸡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
P2089 烤鸡 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
#include<bits/stdc++.h>
using namespace std;
const int N=30;
//const int M=1e3*3+10;
const int M=pow(3,10);
int n;
int arr[N]; //存临时方案
int res; //存方案数
int ans[M][N]; //存所有方案//x表示当前到了哪个位置,sum表示当前已经选了的调料的总质量
void dfs(int x,int sum) {if(sum>n){return; //剪枝}if(x>10){ //枚举到了第11个位置,说明前面的10个调料已经分配好了if(sum==n){ //约束条件,刚好找到了方案res++;for(int i=1;i<=10;i++){ans[res][i]=arr[i];}}return;}for(int i=1;i<=3;i++){arr[x]=i;dfs(x+1,sum+i);arr[x]=0; //恢复现场}
}int main() {cin>>n;dfs(1,0);cout<<res<<endl;for(int i=1;i<=res;i++){for(int j=1;j<=10;j++){cout<<ans[i][j]<<" ";}cout<<endl;}return 0;
}
这篇关于洛谷-P2089 烤鸡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!