• 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;
    }
    自己选择的路,跪着也要走完。朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。
  • 相关阅读:
    练习:选择样条曲线中open的点
    练习:展平splineshape
    MAXScript调用DOTNET的OpenFileDialog
    练习:for循环
    MAXScript笔记_Function函数
    关于 MAXScript 拷贝文件夹及内容到其他位置
    关于逐行逐行读取文本内容并写入数组
    关于如何获取/清除 MAXScript 侦听器内的文本
    关于清除丢失贴图与IES文件
    关于 MAXScript 中文路径返回上级目录(精简版)
  • 原文地址:https://www.cnblogs.com/WTSRUVF/p/9324412.html
Copyright © 2020-2023  润新知