DFS解决USACO——Mother's Milk
Sample Input
2 5 10
Sample Output
5 6 7 8 9 10
看到了这里的Rest数组没有,
既然是bool类型的,又学习了。
#include "iostream"
#include "string.h"
using namespace std;
#define size 21
bool Rest[size];
bool flag[size][size];
int A, B, C;
void DFS(int a, int b, int c)
{
if(flag[a][b]) return;
flag[a][b] = true;
if(a==0) Rest[c] = true;
//min防溢出,max防负数
if(a>0 && b<B) //A向B倒, c不变
DFS(max(0, a+b-B), min(B, a+b), c);
if(a>0 && c<C) //A向C倒,b不变
DFS(max(0, a+c-C), b, min(C, a+c));
if(b>0 && a<A) //B向A倒,c不变
DFS(min(A, a+b), max(0, b+a-A), c);
if(b>0 && c<C) //B向C倒,a不变
DFS(a, max(0, b+c-C), min(C, b+c));
if(c>0 && a<A) //C向A倒,b不变
DFS(min(A, a+c), b, max(0, a+c-A));
if(c>0 && b<B) //C向B倒,a不变
DFS(a, min(B, b+c), max(0, b+c-B));
}
int main()
{
cin>>A>>B>>C;
memset(flag, false, sizeof(flag));
memset(Rest, false, sizeof(Rest));
DFS(0, 0, C);
for(int i=0; i<C; i++)
if(Rest[i])
cout<<i<<" ";
cout<<C<<endl;
}
posted on 2011-10-16 18:45 More study needed. 阅读(751) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架