zoukankan      html  css  js  c++  java
  • 2016"百度之星"

    Sample Input
    3
    1 3 5 2
    1 3 5 1
    3 5 99 69
     
    Sample Output
    Case #1:
    No
    Case #2:
    Yes
    Case #3:
    Yes
    Hint
    对于第一组测试数据:111 mod 5 = 1,公式不成立,所以答案是”No”,而第二组测试数据中满足如上公式,所以答案是 “Yes”。
     
    解:
    m个x组成的数可以表示为x*(1+10+10^2+...+10^m-1)=x*(10^m-1)/9;
    即x*(10^m-1)/9%k==c
       x*(10^m-1)%(9*k)==9*c?
    那么我们就是要求x*(10^m-1)/9 MOD k是不是==c那么,这里有一个分母我们怎么处理呢,肯定有人在想求逆元呀,但是 GCD(9,k)不一定等于1呀,所以求逆元的方法不能用了,那么怎么办呢,我们可以同时扩大9倍也就是求的 x * (10^m-1)MOD 9k 是不是等于 9 * c,剩下的就是 
    快速幂了。 
    #include "cstdio"
    #define LL long long
    LL quick_mod(LL a,LL b,LL mod)
    {
        LL ans=1;
        while(b>0)
        {
            if(b&1){
                ans=ans*a%mod;
            }
            a=a*a%mod;
            b>>=1;
        }
        return ans;
    }
    int main()
    {
        LL T,x,m,k,c;
        scanf("%lld",&T);
        int con=1;
        while(T--)
        {
            scanf("%lld%lld%lld%lld",&x,&m,&k,&c);
            printf("Case #%d:
    ",con++);
            LL mod=9*k;
            LL ans=quick_mod(10,m,mod)*x%mod-x;
            if(ans==9*c)
                printf("Yes
    ");
            else
                printf("No
    ");
        }
        return 0;
    }
  • 相关阅读:
    minicom的安装和tftp的安装
    主机和VMware中的Linux如实现共享文件夹
    gcc调试 学习1
    ARM1
    javaweb学习方案1
    java环境变量和tomcat环境变量配置
    逻辑代数
    在写一点关于MySQL的知识,感觉自己mmd
    Ural 1519 Formula 1 (DP)
    UVaLive 3126 Taxi Cab Scheme (最小路径覆盖)
  • 原文地址:https://www.cnblogs.com/kimsimple/p/7287255.html
Copyright © 2011-2022 走看看