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;
}

UVA571 - Jugs(数论)的更多相关文章

  1. Codeforces Round #382 Div. 2【数论】

    C. Tennis Championship(递推,斐波那契) 题意:n个人比赛,淘汰制,要求进行比赛双方的胜场数之差小于等于1.问冠军最多能打多少场比赛.题解:因为n太大,感觉是个构造.写写小数据, ...

  2. NOIP2014 uoj20解方程 数论(同余)

    又是数论题 Q&A Q:你TM做数论上瘾了吗 A:没办法我数论太差了,得多练(shui)啊 题意 题目描述 已知多项式方程: a0+a1x+a2x^2+..+anx^n=0 求这个方程在[1, ...

  3. 数论学习笔记之解线性方程 a*x + b*y = gcd(a,b)

    ~>>_<<~ 咳咳!!!今天写此笔记,以防他日老年痴呆后不会解方程了!!! Begin ! ~1~, 首先呢,就看到了一个 gcd(a,b),这是什么鬼玩意呢?什么鬼玩意并不 ...

  4. hdu 1299 Diophantus of Alexandria (数论)

    Diophantus of Alexandria Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  5. 【BZOJ-4522】密钥破解 数论 + 模拟 ( Pollard_Rho分解 + Exgcd求逆元 + 快速幂 + 快速乘)

    4522: [Cqoi2016]密钥破解 Time Limit: 10 Sec  Memory Limit: 512 MBSubmit: 290  Solved: 148[Submit][Status ...

  6. bzoj2219: 数论之神

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  7. hdu5072 Coprime (2014鞍山区域赛C题)(数论)

    http://acm.hdu.edu.cn/showproblem.php?pid=5072 题意:给出N个数,求有多少个三元组,满足三个数全部两两互质或全部两两不互质. 题解: http://dty ...

  8. ACM: POJ 1061 青蛙的约会 -数论专题-扩展欧几里德

    POJ 1061 青蛙的约会 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%lld & %llu  Descr ...

  9. 数论初步(费马小定理) - Happy 2004

    Description Consider a positive integer X,and let S be the sum of all positive integer divisors of 2 ...

随机推荐

  1. 用javascript写计算器

    本人新手,如果有什么不足的地方,希望可以得到指点 今天尝试用javascript写一个计算器 首先把计算器的按钮做出来,用button做好了,这样可以不用设置太多的样式 <button valu ...

  2. Mark Down 简单标记语言

    MarkDown介绍=============== ## 1.标题分级介绍 #一级标题###三级标题######六级标题 一级标题============== 二级标题---------------- ...

  3. [python 函数学习篇]默认参数

    python函数: 默认参数: retries= 这种形式 def ask_ok(prompt, retries=, complaint='Yes or no, please!'): while Tr ...

  4. angular2 通过指令限制输入

    最近在写一个表单,有些输入框只能输入数字,单又不想每次写表单的时候,都要去验证输入的是不是数字, 那么就想到直接限制只能输入数字,通过指令实现 这里需要注意的是,不只更改DOM的值,如果input为数 ...

  5. 《学习笔记》Maven

    Maven优点之一:jar包统一管理+升级容易+项目清爽 试想一下,我们会在工作中同时创建很多项目,每个项目可能都会引用一些公用的jar包(.NET中是dll文件),一种作法是每个项目里,都复制一份这 ...

  6. La 3942 字符串+dp

    题目大意:一个字符串,可以分解成若干英语单词的连接(单词可以重复使用),求有多少种方法? #include<iostream> #include<cstdio> #includ ...

  7. 【POJ2104】K-th Number(主席树)

    题意:有n个数组成的序列,要求维护数据结构支持在线的下列两种操作: 1:单点修改,将第x个数修改成y 2:区间查询,询问从第x个数到第y个之间第K大的数 n<=100000,a[i]<=1 ...

  8. MAMP 10.10下启动报错解决方案

      cd /Applications/MAMP/Library/binmv envvars _envvars

  9. Linux命令文件查看过滤

    Linux命令篇 1.查看一个文件的后100行的命令: tail -n 100 Linux下查看文件前几行一般用head -n xx,查看后面几行用tail -n xx.除此之外,还有: tail - ...

  10. C#连接OleDBConnection数据库的操作

    对于不同的.net数据提供者,ADO.NET采用不同的Connection对象连接数据库.这些Connection对我们屏蔽了具体的实现细节,并提供了一种统一的实现方法. Connection类有四种 ...