题目:

Mother's Milk

Farmer John has three milking buckets of capacity A, B, and C liters. Each of the numbers A, B, and C is an integer from 1 through 20, inclusive. Initially, buckets A and B are empty while bucket C is full of milk. Sometimes, FJ pours milk from one bucket to another until the second bucket is filled or the first bucket is empty. Once begun, a pour must be completed, of course. Being thrifty, no milk may be tossed out.

Write a program to help FJ determine what amounts of milk he can leave in bucket C when he begins with three buckets as above, pours milk among the buckets for a while, and then notes that bucket A is empty.

PROGRAM NAME: milk3

INPUT FORMAT

A single line with the three integers A, B, and C.

SAMPLE INPUT (file milk3.in)

8 9 10

OUTPUT FORMAT

A single line with a sorted list of all the possible amounts of milk that can be in bucket C when bucket A is empty.

SAMPLE OUTPUT (file milk3.out)

1 2 8 9 10

SAMPLE INPUT (file milk3.in)

2 5 10

SAMPLE OUTPUT (file milk3.out)

5 6 7 8 9 10
都说了是搜索,红果果的DFS代码:
/*
ID:614433244
PROG: milk3
LANG: C++
*/#include"iostream"
#include"cstdio"
#include"memory.h"
#include"algorithm"
using namespace std;
bool map[21][21][21]={0};
int ans[25],head=-1;
bool flag[25]={0};
int a,b,c;
void dfs( int x,int y,int z )
{if( map[x][y][z] )return;else{map[x][y][z]=1;if( x==0&&flag[z]==0 ){head++;ans[head]=z;flag[z]=1;}//A->Bif( x+y<=b )dfs( 0,x+y,z );elsedfs( x-( b-y ),b,z );//A->Cif( x+z<=c )dfs( 0,y,x+z );elsedfs( x+z-c,y,c );//B->Aif( x+y<=a )dfs( x+y,0,z );elsedfs( a,x+y-a,z );//B->Cif( y+z<=c )dfs( x,0,y+z );elsedfs( x,y+z-c,c );//C->Aif( x+z<=a )dfs( x+z,y,0 );elsedfs( a,y,x+z-a );//C->Bif( y+z<=b )dfs( x,y+z,0 );elsedfs( x,b,y+z-b );}
}int main()
{freopen("milk3.in","r",stdin);freopen("milk3.out","w",stdout);scanf("%d%d%d",&a,&b,&c);dfs( 0,0,c );sort( ans,ans+head+1 );int i;for( i=0;i<head;i++ )printf("%d ",ans[i]);printf("%d\n",ans[i]);return 0;
}

不过因为节点走过了就无需再走,所以无需记住回溯


转载于:https://www.cnblogs.com/rolyxiao/archive/2012/07/14/2591532.html

usaco1.4.4(milk3)相关推荐

  1. DFS入门级(模板)

    DFS史诗级入门教程 DFS 1.全排列(入门引导) 1.1排列方法 1.2程序理解 1.3基本模型 2. 拓展(全排列) 2.1思路 2.2源码 3.迷宫问题 3.1思路 3.2完整源码 4.题目实 ...

  2. 各种各样的搜索(⊙ ▽ ⊙)(1)

    各种各样的搜索(⊙ ▽ ⊙) 1.[USACO1.5]八皇后 Checker Challenge 题目描述 一个如下的 6×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对 ...

  3. 【蓝桥杯】最难算法没有之一· 动态规划真的这么好理解?(引入)

    欢迎回到:遇见蓝桥遇见你,不负代码不负卿!  目录 一.何为动态规划DP 二.记忆化搜索 典例1.斐波那契数列 方法一:暴力递归 方法二:记忆化搜索 变形题 典例2:爬楼梯(青蛙跳台阶) 方法一:暴力 ...

  4. 不明飞行物(UFO)

    [小韦同学@题解-不明飞行物] 题目: 描述 UFO(不明飞行物)经常从地球上带走忠实的追随者.由于飞船容量限制,他们每次只能带走一个追随者,问题是该带走谁呢?UFO设计了一个策略:根据飞船名称和追随 ...

  5. 分享给某人的前端面试题库(一)

    一张图阐述一下Web前端开发的概要 HTML/CSS部分 1.什么是盒子模型? 在网页中,一个元素占有空间的大小由几个部分构成,其中包括元素的内容(content),元素的内边距(padding),元 ...

  6. OpenAPI使用(swagger3),Kotlin使用swagger3,Java使用swagger3,gradle、Maven使用swagger3

    OpenAPI使用(swagger3) demo见Gitte 一.背景及名词解释 OpenAPI是规范的正式名称.规范的开发工作于2015年启动,当时SmartBear(负责Swagger工具开发的公 ...

  7. 2022-2028年中国第五代移动通信技术(5G)市场研究及前瞻分析报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国第五代移动通信技术(5G)行业市场行业相 ...

  8. 2021-2027全球与中国经颅磁刺激仪(TMS)市场现状及未来发展趋势

    [报告类型]产业研究 [报告价格]¥4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了全球与中国经颅磁刺激仪(TMS)行业市场行 ...

  9. Go 学习笔记(84)— Go 项目目录结构

    1. 目录规范 一个好的目录结构至少要满足以下几个要求. 命名清晰:目录命名要清晰.简洁,不要太长,也不要太短,目录名要能清晰地表达出该目录实现的功能,并且目录名最好用单数.一方面是因为单数足以说明这 ...

最新文章

  1. 深蓝学院第三章:基于卷积神经网络(CNN)的手写数字识别实践
  2. Java Web中的jsp技术
  3. AAAI2018正式落幕 13个世界顶尖AI教授都讲了啥?
  4. mysql 组复制和传统复制_MySQL的GTID复制与传统复制的相互切换
  5. Cisco asa 5520 oid
  6. python中的运算符_Python中的运算符
  7. POJ1338 Ugly Numbers(解法二)【废除!!!】
  8. 使用字符串格式化函数
  9. 长连接与短连接的区别
  10. oraoledb.oracle.11,Oracle11g链接提示未“在本地计算机注册“OraOLEDB.Oracle”解决方法...
  11. python条形图和线形图的绘制,并显示数据
  12. bu薪水 华为cloud_【华为】CLOUDBU 华为云数据库工程师招聘 - 软件与微电子学院(SSM)版 - 北大未名BBS...
  13. OD常用断点函数(转载)
  14. 长江实业全新超甲级商业地标 长江集团中心二期设计理念以人为本
  15. 20201113--工具总结
  16. 斯诺登最新泄漏文档:揭秘美国秘密监控基地——澳大利亚“松树谷”
  17. java关于驾考系统的实现_java 考试系统,类似驾考宝典
  18. 英语思维导图大全 时态(十)
  19. 时间轮python_源码笔记:Nodejs 如何高效的获取时间戳而不影响性能的?
  20. 名企笔试真题精选(三)

热门文章

  1. struts 2中为什么抽象包不能包含action?
  2. Web站点下的Web Service读取此Web站点中的Session值
  3. 浅谈对Ubuntu桌面系统的实验性理解
  4. prefixspan java_PrefixSpan序列模式挖掘算法
  5. 强制生成32位arm程序_3. 从0开始学ARM-ARM模式、寄存器、流水线
  6. LD(Levenshtein distance)莱文斯坦距离----编辑距离
  7. mPaaS 月度小报|为采购而生,全新资源包上架;前端 2D 游戏化互动入门指南
  8. 【阿里巴巴研发效能峰会】低代码与数智化分论坛在线预约中……
  9. 针对《等保2.0》要求的云上最佳实践——网络安全篇
  10. python字符串库函数_Python标准库概览(1):string