UVA571 - Jugs(数论)
来源:互联网 发布:百度新闻源排名优化 编辑:程序博客网 时间:2024/06/06 15:45
UVA571 - Jugs(数论)
题目链接
题目大意:给你A和B的水杯,给你三种操作:fill X:把X杯里面加满水。empty X:把X杯中的水清空。pour X Y 把X的水倒入Y中直到一方满或另一方空为止。然后要求你得到C的水量,给出实现步骤。
解题思路:因为A,B互质,n属于【1,B - 1】则n%B=n。那么n∗A%B= n%B∗A%B = n∗R,因为AB互质所以n∗A不可能整除B。现在要求得到水量n,那么只要使得R == 1就可以得到想要的水量。这样只要控制A的系数就可以得到想要的水量,所以步骤就是不停的将A的水倒入B中,直到等于目标水量。只是倒入的时候需要判断一下A是否是空还是B是否是满,对应将他们填满或是清空。
代码:
#include <cstdio>#include <cstring>int A, B, C;void solve() { int ca, cb; ca = cb = 0; while (1) { if (ca == C || cb == C) { printf ("success\n"); return; } if (ca == 0) { printf ("fill A\n"); ca = A; } else if (cb == B) { printf("empty B\n"); cb = 0; } else { printf ("pour A B\n"); if (cb + ca > B) { ca = cb + ca - B; cb = B; } else { cb += ca; ca = 0; } } }}int main () { while (scanf ("%d%d%d", &A, &B, &C) != EOF) { solve(); } return 0;}
0 0
- UVA571 - Jugs(数论)
- UVA571- Jugs
- Jugs uva571
- uva571 - Jugs(水壶)
- CSU 1209 Three Jugs (数论)
- UVa 571 - Jugs (数论)
- UVA - 571 - Jugs (数论 - 经典倒水问题)
- poj 1606 Jugs and poj 3414 Pots(数组模拟BFS) uva 571 (数论)
- ZOJ 1005 POJ 1606 Jugs /数论
- Jugs(灌水定理)
- Jugs
- Jugs
- Jugs
- Jugs
- hdu 1415 Jugs(BFS)
- ZOJ--1005:Jugs(dfs)
- (杯子倒水问题)Jugs(p1606)
- ZOJ 1005 Jugs (倒水问题)
- Linux(64/32)安装JDK
- 机器学习算法之旅
- MiniGUI文档参考手册 基于v1.6.10版
- centos7修改源为163数据源
- 机器学习常见算法分类汇总
- UVA571 - Jugs(数论)
- C程序调试
- linux Bash介绍
- PHP文件操作
- Java之模式设计
- 第九周项目一(do-while语句)
- 有趣的机器学习:最简明入门指南
- [Erlang危机](5.1.2)CPU
- 伪目标.PHONY