UVa 571 Jugs(经典倒水问题)
题意:
有A, B两个容量的罐子,A B互质,可以对其执行一系列倒水操作,最终使B中剩下的水位n
思路:
1. 前提条件:如果A B互质,则 r = x*A mod B,对于x∈[0, B-1] r≠0. 这个很容易用最小公倍数证明之。
2. 有了前提条件,则证明 r1 = x1*A mod B, r2 = x2*A mod B,对于x1, x2∈[0, B-1],x1≠x2 有r1≠r2.
下面用反证法来证明之:
如果x1, x2∈[0, B-1],x1≠x2 有r1=r2,则存在 (x1-x2)*A mod B = 0.
由1知,显然矛盾了。所以2成立。
3. 由2可得,当x取遍[0, B-1]的值的时候,r也一定取遍了[0, B-1]区间里面的值。
对于本题来说,我采取下面的一种策略:
每次A是空的就加水,不空就向B倒,B满了之后就empty掉,这样在B中一定可以形成0-B的任意一个解。
#include <cstdio> #include <cstdlib> #include <cstring>int main() {int ca, cb, n;while (scanf("%d %d %d", &ca, &cb, &n) != EOF){int a = 0, b = 0;while (true){if (b == n){printf("success\n");break;}else if (b == cb){printf("empty B\n");b = 0;}else if (a == 0){printf("fill A\n");a = ca;}else if (a != 0){printf("pour A B\n");if (a + b <= cb)b += a, a = 0;elsea = a + b - cb, b = cb;}}}return 0; }
转载于:https://www.cnblogs.com/kedebug/archive/2012/12/05/2802927.html
UVa 571 Jugs(经典倒水问题)相关推荐
- uva 571 - Jugs
题目链接:uva 571 - Jugs 题目大意:给出A,B和aid,A表示小杯的容量,B表示大杯的容量,aid表示要求大杯中剩余的水量,有无限的水,给出方案,(A和B互质) 解题思路:A和B互质就说 ...
- uva 571 Jugs
原题: In the movie "Die Hard 3", Bruce Willis and Samuel L. Jackson were confronted with the ...
- 铁轨(UVa 514) 经典数据结构算法,铁轨问题
铁轨(UVa 514) 经典算法,铁轨问题 关于数据结构中栈的应用, 题目: PopPush城市有一座著名的火车站.这个国家到处都是丘陵.而这个火车站是建于上一个世纪.不幸的是,那时的资金有限.所以只 ...
- uva 816(经典bfs例子)
题意:有一个最多包含9*9个交叉点的迷宫 .输入起点,离开起点时的朝向和终点,求一条最短路径.每个交叉点的朝向不同能左转,右转或直走也不同.求最短路径. 分析:定义三元数组,[x][y][dir],位 ...
- uva 12730(期望经典)
选自: http://blog.csdn.net/myhelperisme/article/details/39724515 用dp(n)表示有n个位置时的期望值,那么,对于一个刚进来的人来说,他有 ...
- layui table 表头合并_layui 动态表格之合并单元格
需求: 下面用excel表格大概模拟下需求,左边是原来的,要改成右边这样的: ①第一步:再生成表格后调用此方法,以合并重复的单元格 done : function(res, curr, count) ...
- 提取了下刘汝佳推荐的题号...
今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started 10055 - Hashmat the Brave Warrior ...
- HDU各种比赛题题解(一)
HDU各种比赛题题解(一) Gardon-DYGG Contest 1 HDU1178 Heritage from father[水题] - 海岛Blog - CSDN博客 HDU1181 变形课[D ...
- TYUT-A专题题解(一)
TYUT-A专题题解(一) 01A Ad Hoc UVA353 LA5247 Pesky Palindromes[回文] - 海岛Blog - CSDN博客 UVA947 Master Mind He ...
- Competitive Programming 3题解
题目一览: Competitive Programming 3: The New Lower Bound of Programming Contests(1) Competitive Programm ...
最新文章
- Android 沉浸式状态栏的实现方法、状态栏透明
- 软件工程实践2017 结队项目——第二次作业
- 抽奖啦!AI内参、李沐新书深度学习、米家扫地机器人送送送
- 我非要捅穿这 Neutron(二)上层资源模型篇
- CC2530学习路线-基础实验-串口通讯发送字符串(4 未完待续)
- 合并两个无序数组java_Java实现十大排序算法(上)
- 使用 SAP BTP 创建一个 Spring Boot Java 应用
- javascript的关于刷新页面给出提示框的代码
- c语言成绩管理系统开题报告,学生信息管理系统,开题报告(共篇).doc
- centos7手动更新、每天自动更新
- ROS学习笔记4(编译一个ROS Package)
- 论有一个服务器后可以干什么
- 职工工作量c语言调试分析,c语言职工工作量统计
- Mini 容器学习笔记10——方法注入
- Atitit.互联网 软件编程 数据库方面 架构 大牛 牛人 attilax总结
- echart 全国地图 下钻省、市、区
- BoM在企业管理中的重要作用
- centos 打包某个目录_CentOS 打包压缩文件 zip 命令详解
- 如何查看一个网站的robots文件?
- js实现pc打开摄像头,拍照,下载