洛谷P1215 [USACO1.4]母亲的牛奶 Mother's Milk

题目描述 https://www.luogu.org/problemnew/show/P1215
方法很多,主要是找全。
搜素,哪个有牛奶就倒哪个,注意重复,最后排序输出。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int a,b,c,cnt,ans[2005],fl[25][25][25];
void dfs(int na,int nb,int nc)
{
	if(fl[na][nb][nc]) return;
	if(na==0) ans[++cnt]=nc;
	fl[na][nb][nc]=1;
	if(nc)
	{
	   if(na<a) dfs(min(na+nc,a),nb,nc-(min(na+nc,a)-na));
	   if(nb<b) dfs(na,min(nb+nc,b),nc-(min(nb+nc,b)-nb));
	}
	if(nb)
	{
		if(na<a) dfs(min(na+nb,a),nb-(min(na+nb,a)-na),nc);
		if(nc<c) dfs(na,nb-(min(nb+nc,c)-nc),min(nb+nc,c));
	}
	if(na)
	{
		if(nb<b) dfs(na-(min(na+nb,b)-nb),min(na+nb,b),nc);
		if(nc<c) dfs(na-(min(na+nc,c)-nc),nb,min(na+nc,c));
	}
}
int main() 
{ 
   scanf("%d%d%d",&a,&b,&c);
   dfs(0,0,c);
   sort(ans+1,ans+cnt+1);
   for(int i=1;i<=cnt;i++) printf("%d ",ans[i]);
 	
  return 0;	
}

猜你喜欢

转载自blog.csdn.net/qq_42920122/article/details/88777959