P2089 烤鸡
题目背景
猪猪hanke得到了一只鸡
题目描述
猪猪Hanke特别喜欢吃烤鸡(本是同畜牲,相煎何太急!)Hanke吃鸡很特别,为什么特别呢?因为他有10种配料(芥末、孜然等),每种配料可以放1—3克,任意烤鸡的美味程度为所有配料质量之和
现在,Hanke想要知道,如果给你一个美味程度,请输出这10种配料的所有搭配方案
输入输出格式
输入格式:
一行,n<=5000
输出格式:
第一行,方案总数
第二行至结束,10个数,表示每种配料所放的质量
按字典序排列。
如果没有符合要求的方法,就只要在第一行输出一个“0”
输入输出样例
11
10 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1
说明
枚举
var
n,i1,i2,i3,i4,i5,i6,i7,i8,i9,i10,j,ji,ans:longint;
a:array[1..10000,1..10]of longint;
begin readln(n);
for i1:=1 to 3 do//直接枚举,10种作料都试放1~3克
for i2:=1 to 3 do
for i3:=1 to 3 do
for i4:=1 to 3 do
for i5:=1 to 3 do
for i6:=1 to 3 do
for i7:=1 to 3 do
for i8:=1 to 3 do
for i9:=1 to 3 do
for i10:=1 to 3 do
if i1+i2+i3+i4+i5+i6+i7+i8+i9+i10=n then begin//当配料质量等于美味程度时 inc(ans);//统计方案总数 inc(ji);//行 a[ji,1]:=i1;//统计配料质量 a[ji,2]:=i2; a[ji,3]:=i3; a[ji,4]:=i4; a[ji,5]:=i5; a[ji,6]:=i6; a[ji,7]:=i7; a[ji,8]:=i8; a[ji,9]:=i9; a[ji,10]:=i10; end;
writeln(ans);
for i1:=1 to ji do
begin
for j:=1 to 10 do
if j<=9 then write(a[i1,j],' ')
else write(a[i1,j]);
writeln;//空行
end;
end.