zoukankan      html  css  js  c++  java
  • uva 571 素数的性质

    给定 两个杯子,容量分别分Ca,Cb, 要我们用这两个瓶子倒来倒去,得到某个瓶子里装有N的水

    而且给的数据保证  Cb > N,且Ca,Cb互质

    那么我们肯定可以在容量为Cb的杯子里得到N的水

    Ca与Cb的最小公倍数是Ca*Cb

    我们设ri <Cb

    所以ri * Ca % Cb != 0,   而且得到的余数各不相同

    因为如果有两个余数相同,我们不妨设 ri * Ca % Cb = rj * Ca % Cb    (rj>ri)

    那么  那么 Ca*(rj-ri) %Cb =0  与  Ca与Cb的最小公倍数是Ca*Cb 矛盾

    所以余数不可能相同, 且余数为 1->Cb-1, 所以肯定可以得到余数N

     1 #include <stdio.h>
     2 int main() {
     3     int A, B, a, b, aid;
     4     while (scanf("%d%d%d", &A, &B, &aid) == 3) {
     5         a = b = 0;
     6         while (1) {
     7             if (b == aid) {
     8                 printf("success
    ");
     9                 break;
    10             }
    11             else if (b == B) {
    12                 printf("empty B
    ");
    13                 b = 0;
    14             }
    15             else if (a == 0) {
    16                 printf("fill A
    ");
    17                 a = A;
    18             }
    19             else {
    20                 printf("pour A B
    ");
    21                 int c = min(B - b, a);
    22                 b += c;
    23                 a -= c;
    24             }
    25         }
    26     }
    27     return 0;
    28 }
    View Code
  • 相关阅读:
    hdu1003 最大子串和
    cf339d Xenia and Bit Operations
    A + B Problem II
    中国近代史纲要----王洪兵--2016年春季学期----中国海洋大学
    CodeForces 35D Animals
    CodeForces 558D
    Vanya and Brackets
    spfa
    hdu 1217 Arbitrage
    CodeForces 1A Theatre Square
  • 原文地址:https://www.cnblogs.com/justPassBy/p/4495401.html
Copyright © 2011-2022 走看看