洛谷-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;
}
相关推荐
此生决int1 天前
算法从入门到精通——滑动窗口
c++·算法·蓝桥杯
WL_Aurora1 天前
备战蓝桥杯国赛【Day 16】
python·蓝桥杯
奔跑的Ma~1 天前
第6篇:蓝桥杯C++进阶突破(难题拆解+算法优化,冲刺国赛高奖)
c++·算法·蓝桥杯·#蓝桥杯备战·#c++编程·编程竞赛
x_yeyue2 天前
2026第十七届蓝桥杯c++B组省赛题解
笔记·算法·蓝桥杯·acm·题解
handler012 天前
【C++ 算法竞赛基础】数论篇:核心公式、经典例题与高频模板
开发语言·c++·算法·蓝桥杯·数论·最大公约数·最小公倍数
WL_Aurora2 天前
备战蓝桥杯国赛【Day 15】
python·蓝桥杯
像素猎人2 天前
蓝桥杯OJ505数字三角形【与简单数字三角形不一样】【2020年省赛真题】【动态规划】
蓝桥杯·动态规划
liu****2 天前
第16届国赛蓝桥杯大赛C/C++大学B组
c语言·数据结构·c++·算法·蓝桥杯
liu****2 天前
第16届国赛蓝桥杯大赛C/C++大学C组
c语言·数据结构·c++·算法·蓝桥杯
handler013 天前
滑动窗口(同向双指针)算法:模板与例题解析
c语言·c++·笔记·算法·蓝桥杯·双指针·滑动窗口