zoukankan      html  css  js  c++  java
  • 牛客国庆集训派对Day1 C-Utawarerumono(扩展欧几里得)

    链接:https://www.nowcoder.com/acm/contest/201/C
    来源:牛客网

    算术是为数不多的会让Kuon感到棘手的事情。通常她会找Haku帮忙,但是Haku已经被她派去买东西了。于是她向你寻求帮助。
    给出一个关于变量x,y的不定方程ax+by=c,显然这个方程可能有多个整数解。Kuon想知道如果有解,使得p2*x2+p1*x+q2*y2+q1*y最小的一组整数解是什么。为了方便,你只需要输出p2*x2+p1*x+q2*y2+q1*y的最小值。
     
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    typedef long long ll;
    ll p2,p1,q2,q1;
    ll a, b, c, d, x, y;
    ll ans=1e18;
    ll Exgcd(ll a, ll b)
    {
        if(b==0){ x=1, y=0;return a;}
        ll r = Exgcd(b, a%b);
        ll tp=x;
        x = y;
        y = tp-a/b*y;
        return r;
    }
    int main()
    {
            cin>>a>>b>>c>>p1>>p2>>q1>>q2;
            d = Exgcd(a, b);
            if(((a==0)&&(b==0)&&c) || c%d!=0 )
                printf("Kuon
    ");        
            else{
               for(int i=-100005;i<=100005;i++){
                    if((c-a*i)%b==0){
                        ll iy=(c-a*i)/b;
                        ll ac=p2*i*i+p1*i+q2*iy*iy+q1*iy;
                        ans=min(ans,ac);
                    }
               }
               cout<<ans<<endl;
            }
        return 0;
    }

     

  • 相关阅读:
    AngularJS:模块
    AngularJS:事件
    AngularJS:HTML DOM
    AngularJS:SQL
    AngularJS:表格
    AngularJS:Select
    shell之数组
    java实现串中找数字
    java实现串的反转
    java实现串的反转
  • 原文地址:https://www.cnblogs.com/Fy1999/p/9740890.html
Copyright © 2011-2022 走看看