zoukankan      html  css  js  c++  java
  • Play with Floor and Ceil UVA

    因为我现在还不会用这个。。。emm。。。蒟蒻。。。只看了 从来没用过。。。。所以切一道水题。。。练一下。。。

    人家讲的很好  https://blog.csdn.net/u012860428/article/details/41259377

    题目大意:求出满足要求的p和q,使得对于给定的x,k,,输出一组满足要求的p,q即可;

    下面对于x,k进行讨论;

    1、若x能被k整除,那么只要p+q=k即可;

    2、如果不能被其整除,则领,那么,x=p*a+q*(a+1);相当于对于不定方程求解,易知,(a,a+1)=1,所以可以先用扩展欧几里得算法求出一组满足

    ap + bq= d 的解  其中d = gcd(p,q)

    然后 P = p * x/d  Q = q * x/d    因为求的是  ap + bq= d 的解  而我们要求ap + bq = x 的解    x = d * x/d  所以 求出的p 和 q 都乘上 x/d即可

    即为解

    #include <iostream>
    #include <cstdio>
    #include <sstream>
    #include <cstring>
    #include <map>
    #include <set>
    #include <vector>
    #include <stack>
    #include <queue>
    #include <algorithm>
    #include <cmath>
    #define MOD 2018
    #define LL long long
    #define ULL unsigned long long
    #define Pair pair<int, int>
    #define mem(a, b) memset(a, b, sizeof(a))
    #define _  ios_base::sync_with_stdio(0),cin.tie(0)
    //freopen("1.txt", "r", stdin);
    using namespace std;
    const int maxn = 10010, INF = 0x7fffffff;
    
    void gcd(LL a, LL b, LL& d, LL& x, LL& y)
    {
        if(!b)
        {
            d = a;
            x = 1;
            y = 0;
        }
        else
        {
            gcd(b, a%b, d, y, x);
            y -= x*(a/b);
        }
    }
    
    
    int main()
    {
        int T;
        cin>> T;
        while(T--)
        {
            LL x, y, d, a, b, k, c;
            cin>> c >> k;
            if(c % k == 0)
            {
                cout<< 1 << " " << k-1 <<endl;
    
            }
            else
            {
                a = floor(c/(double)k);
                b = ceil(c/(double)k);
                gcd(a, b, d, x, y);
                x*=c/d;
                y*=c/d;
                cout<< x << " " << y <<endl;
    
            }
    
        }
    
        return 0;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    复习面向对象--继承,重写,重载,抽象详解
    复习面向对象---员工案例
    连接池介绍 + 示意图 + 手写连接池pool
    statement 和 preparedStatement 优缺点
    软件测试(二十三)
    软件测试(二十二)
    软件测试(二十一)
    软件测试(二十)
    软件测试(十九)
    软件测试(十八)
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9324412.html
Copyright © 2011-2022 走看看