• hdu 1573 X问题 非互素的中国剩余定理应用


    题目地址:

    http://acm.hdu.edu.cn/showproblem.php?pid=1573

    注意要点:

    1 最后的次数直接用除法 取高斯加1即可  若用加法累加会超时

    2 很容易漏掉的一点是题目要求正整数个数, 不是非负整数 ,如果最后r1==0  而且结果不是0  ,就要在结果上减一

    #include<iostream>
    #include<cstdio>
    using namespace std;
    typedef long long inta;
    
    void extend_gcd(inta a,inta b,inta &x,inta &y,inta &gcd)
    {
        if(b==0)
        {
           x=1;
           y=0;
           gcd=a;
        }
        else
        {
          extend_gcd(b,a%b,x,y,gcd);
          inta temp=x;
          x=y;
          y=temp-a/b*y;
    
        }
    }
    int main()
    {
    
       int  size=0;
        cin>>size;
       for(int k=0;k<size;k++)
       {
          int bad=0;
         inta n,m;
         cin>>n>>m;
         int *a=new int[m];
         int *r=new int[m];
         for(int i=0;i<m;i++)
            cin>>a[i];
         for(int i=0;i<m;i++)
            cin>>r[i];
    
         inta a1,r1,a2,r2,x,y;
         a1=a[0];
         r1=r[0];
         for(int i=1;i<m;i++)
        {
           a2=a[i];
           r2=r[i];
           inta a=a1;
           inta b=a2;
           inta c=r2-r1;
           inta q=1;
           extend_gcd(a,b,x,y,q);
           if(c%q!=0)
           {
              bad=1;
              break;    // 和poj那个题不一样 后面可以直接不管了
           }
    
           else
           {
              inta t=b/q;
              x=(c/q*x%t+t)%t;
              r1=a1*x+r1;
              a1=a1/q*a2;
              r1=r1%a1;
           }
        }
    
          if(bad==1)
           cout<<0<<endl;
          else
          {
    
               inta ans= 0;
               if(n>=r1)
                ans=(n-r1)/a1+1;
               if(ans>0&&r1==0)
                ans-=1;  //只要正整数
               cout<<ans<<endl;
    
          }
    
       }
    }
    


  • 相关阅读:
    排序算法(一)之冒泡排序
    递归思想
    排序算法(四)之归并排序
    排序算法(三)之插入排序
    Config 摆脱配置的烦恼
    Mysql查看正在执行的Sql进程
    Scala笔记
    WPF之AvalonEdit实现MVVM双向绑定
    2021最新 MySQL常见面试题精选(附刷题小程序)
    IDEA控制台乱码
  • 原文地址:https://www.cnblogs.com/814jingqi/p/3217967.html
Copyright © 2020-2023  润新知