洛谷-P2089 烤鸡

P2089 烤鸡 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

cpp 复制代码
#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;
}
相关推荐
xuanjiong27 分钟前
纯个人整理,蓝桥杯使用的算法模板day2(0-1背包问题),手打个人理解注释,超全面,且均已验证成功(附带详细手写“模拟流程图”,全网首个
算法·蓝桥杯·动态规划
你今天刷题了吗?1 小时前
蓝桥杯练习:翻转二叉树
蓝桥杯
Jasmin Tin Wei20 小时前
蓝桥杯 web 学海无涯(axios、ecahrts)版本二
前端·蓝桥杯
SheepMeMe21 小时前
蓝桥杯2024省赛PythonB组——日期问题
python·算法·蓝桥杯
随便昵称21 小时前
蓝桥杯专项复习——前缀和和差分
c++·算法·前缀和·蓝桥杯
脑子慢且灵21 小时前
蓝桥杯冲刺:一维前缀和
算法·leetcode·职场和发展·蓝桥杯·动态规划·一维前缀和
姜威鱼21 小时前
蓝桥杯python编程每日刷题 day 21
数据结构·算法·蓝桥杯
凯强同学1 天前
第十四届蓝桥杯大赛软件赛省赛Python 大学 C 组:6.棋盘
python·算法·蓝桥杯
wuqingshun3141591 天前
蓝桥杯 切割
数据结构·c++·算法·职场和发展·蓝桥杯
余华余华1 天前
2024年蓝桥杯Java B组省赛真题超详解析-分布式队列
java·职场和发展·蓝桥杯