题目描述

Winy是一家酒吧的老板,他的酒吧提供两种体积的啤酒,a ml和b ml,分别使用容积为a ml和b ml的酒杯来装载。

酒吧的生意并不好。Winy发现酒鬼们都非常穷。有时,他们会因为负担不起aml或者bml啤酒的消费,而不得不离去。因此,Winy决定出售第三种体积的啤酒(较小体积的啤酒)。

Winy只有两种杯子,容积分别为a ml和b ml,而且啤酒杯是没有刻度的。他只能通过两种杯子和酒桶间的互相倾倒来得到新的体积的酒。

为了简化倒酒的步骤,Winy规定:

(1)a≥b;

(2)酒桶容积无限大,酒桶中酒的体积也是无限大(但远小于桶的容积);

(3)只包含三种可能的倒酒操作:

①将酒桶中的酒倒入容积为b ml的酒杯中;

②将容积为a ml的酒杯中的酒倒入酒桶;

③将容积为b ml的酒杯中的酒倒入容积为a ml的酒杯中。

(4)每次倒酒必须把杯子倒满或把被倾倒的杯子倒空。

Winy希望通过若干次倾倒得到容积为a ml酒杯中剩下的酒的体积尽可能小,他请求你帮助他设计倾倒的方案

输入输出格式

输入格式:

两个整数a和b(0

输出格式:

第一行一个整数c,表示可以得到的酒的最小体积。

第二行两个整数Pa和Pb(中间用一个空格分隔),分别表示从体积为a ml的酒杯中倒出酒的次数和将酒倒入体积为b ml的酒杯中的次数。

若有多种可能的Pa、Pb满足要求,那么请输出Pa最小的一个。若在Pa最小的情况下,有多个Pb满足要求,请输出Pb最小的一个。

输入输出样例

输入样例#1:

5 3

输出样例#1:

1

1 2

说明

样例解释:倾倒的方案为:

1、桶->B杯;2、B杯->A杯;

3、桶->B杯;4、B杯->A杯;

5、A杯->桶; 6、B杯->A杯;

分析:

本题是扩欧的扩展题目,但是核心思想还是扩欧,而本题最大问题在于我们事实上只做了一遍扩欧,求出来的不一定是最小值,所以还需调整。

CODE:

1 #include

2 #include

3 #include

4 using namespacestd;5 const int M=10005;6 inta,b,now;7 ints[M],t[M],q[M];8 intmain(){9 cin>>a>>b;10 int bb=b,aa=a;11 //if (a>b) swap(a,b);

12 s[0]=t[1]=1;13 s[1]=t[0]=0;14 now=1;15 while(b){16 q[now]=a/b;17 swap(a,b);18 b%=a;19 now++;20 s[now]=s[now-2]-q[now-1]*s[now-1];21 t[now]=t[now-2]-q[now-1]*t[now-1];22 }23 int ans=s[now-1]*aa+t[now-1]*bb;24 while (s[now-1]>0) s[now-1]-=aa;25 while (1) {26 if (s[now-1]+aa>0) break;27 s[now-1]+=aa;28 }29 cout<

33 return 0;34 }

java实现倒酒的问题_倒酒 - Sword_Art_Online - 博客园相关推荐

  1. 限制会话id服务端不共享_会话控制 - able-woman - 博客园

    会话控制是什么? cookie和session都是跟踪整个会话过程的技术手段.而会话,就是用户通过浏览器和服务器的一次通话. 为什么要有会话控制? 因为HTTP协议是无状态的,服务器不知道用户上一次做 ...

  2. java 模拟登陆exe_Java简单模拟登陆和爬虫实例---博客园老牛大讲堂

    鉴于有人说讲的不清楚,我这里再详细补充一下:更新日期:2017-11-23 本片文章适合初学者,只简单说了一下爬虫怎么用,和一个简单的小实例.不适合你的就可以不看了.----博客园老牛大讲堂 1.什么 ...

  3. java数字常量_数字常量 - javawebsoa - 博客园

    数字常量 shell脚本在默认情况下都是把数字作为10进制数来处理, 除非这个数字采用了特殊的标记或者前缀. 如果数字以0开头的话那么就是8进制数. 如果数字以0x开头的话那么就是16进制数. 如果数 ...

  4. java原子变量的作用_原子变量 - jock_javaEE - 博客园

    一.原子变量的作用:解决并发下多个线程操作共享数据存在,线程安全问题 原子变量 = volatile + CAS算法[又叫无锁机制] 二. 例子 package com.atguigu.juc; im ...

  5. java计算雷达扫描范围_雷达扫描 - linyinmobayu - 博客园

    1.设计思想 雷达扫描图,在影视作品中见到较多,比如飞机雷达.舰艇雷达,有一个扫描线转圈代表雷达一周旋转或一个批次的收发,发现目标就在表盘上标记位置.和汽车仪表盘类似,汽车仪表盘有底盘背景图.同圆.刻 ...

  6. java 熔断_熔断理解 - THISISPAN - 博客园

    服务熔断的理解 服务熔断也称服务隔离,来自于Michael Nygard 的<Release It>中的CircuitBreaker应用模式,Martin Fowler在博文Circuit ...

  7. java元类_元类 - 一心不乱 - 博客园

    我们使用class机制产生的类,然后在通过类产生的对象 而类实际上都是通过type来实现的 首先确定type里需要添加哪些元素 class_name = 'A'   类名 class_base = ( ...

  8. 斯特林数 java实现_斯特林数 - BILL666 - 博客园

    第一类斯特林数 定义 \(\left[\begin{matrix}n\\m\end{matrix}\right]\) 表示将\(n\)个带标号的元素放入\(m\)个不带标号的环的方案数 递推式 \[\ ...

  9. java 粒子滤波_粒子滤波 - gary_123 - 博客园

    跟着博主http://blog.csdn.net/heyijia0327/article/details/40899819一起学习 尽管利用高斯逼近能有效解决许多滤波问题,但当滤波分布为多模型或某些状 ...

最新文章

  1. VTK修炼之道42:频域处理_高通滤波(理想+巴特沃兹)
  2. 【数据结构与算法】之深入解析KMP算法的核心原理和实战演练
  3. 原来C语言还可以这样实现“泛型编程”!
  4. ESXI忘记密码怎么办?
  5. 飞秋官方下载 这个程序很不错
  6. 前端基础7:a标签常用方法和元素居中方式,响应式@media
  7. 根据服务端生成的WSDL文件创建客户端支持代码的三种方式
  8. CNN for Sentence Classification-textcnn阅读笔记
  9. 版本控制工具——subversion
  10. R语言大小写字母转换
  11. 关联本地项目和svn_技术贴 本地代码与svn关联教程 svn upgrade问题解决
  12. JNI 调用流程 与 JNIEvn逻辑概述
  13. 人工智能技术的原理是什么,人工智能技术在实际应用中具有哪些优势?
  14. python 设置输入法为英文_python 怎么转化输入法
  15. matlab三维绘图
  16. 【冬瓜哥归来】传统存储老矣,新兴存储能当大任否?
  17. 007-绘制三角函数图像(一)
  18. 中间件小师妹 de 年度工作总结
  19. linux网络存储服务器选题意义,linux网络存储服务器iscsi详细介绍分析.doc
  20. AVX-512指令的前世今生

热门文章

  1. 工作多年后才明白的.NET底层开发技术
  2. django 跨域出错 (corsheaders.E013) Origin ‘127.0.0.1:8080‘ in CORS_ORIGIN_WHITELIST is missing scheme or
  3. java补完——计算机日语外来语接续词(未完成)
  4. php solr docker搭建,深入浅出Docker技术- 基于Docker Solr集群的搭建
  5. 苹果手机无法开机?黑屏打不开怎么办?出现这种问题的解决办法分享!
  6. ARM编程中B指令与BL指令的区别
  7. 两台计算机互联,其中一台能ping通另一台却无法连通,执行Ping成功而网络无法使用 的解决
  8. 虚拟机运行python_python虚拟机运行原理
  9. 联想微型计算机 wifi,联想(Lenovo)路由器无线wifi设置方法图解 | 192路由网
  10. 椭圆曲线数字签名应用原理