洛谷:P2089 烤鸡(搜索)
程序员文章站
2024-03-04 11:30:41
...
题目:
分析:最基本的搜索吧!
代码:
#include<bits/stdc++.h>
using namespace std;
int cnt[11];
int ans=0;
int m;
void f(int num,int rest)
{
if((11-num)*2<rest) return;
if(rest==0)
{
ans++;
return ;
}
for(int i=0;i<=2;i++)
{
if(rest-i<0) break;
f(num+1,rest-i);
}
}
void f2(int num,int rest)
{
if((11-num)*2<rest) return;
if(rest==0)
{
for(int i=1;i<11;i++) cout<<cnt[i]+1<<' ';
cout<<endl;
return ;
}
for(int i=0;i<=2;i++)
{
if(rest-i<0) break;
cnt[num]=i;
f2(num+1,rest-i);
cnt[num]=0;
}
}
int main()
{
memset(cnt,0,sizeof(cnt));
cin>>m;
f(1,m-10);
cout<<ans<<endl;
f2(1,m-10);
}