zoukankan      html  css  js  c++  java
  • HDU5478(快速幂)

    Can you find it

    Time Limit: 8000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 1407    Accepted Submission(s): 581


    Problem Description
    Given a prime number C(1C2×105), and three integers k1, b1, k2 (1k1,k2,b1109). Please find all pairs (a, b) which satisfied the equation ak1n+b1bk2nk2+1 = 0 (mod C)(n = 1, 2, 3, ...).
     
    Input
    There are multiple test cases (no more than 30). For each test, a single line contains four integers C, k1, b1, k2.
     
    Output
    First, please output "Case #k: ", k is the number of test case. See sample output for more detail.
    Please output all pairs (a, b) in lexicographical order. (1a,b<C). If there is not a pair (a, b), please output -1.
     
    Sample Input
    23 1 1 2
     
    Sample Output
    Case #1: 1 22
     
    思路:枚举a。当n=1时,ak1+b+b=0(mod C),则b=C-ak1+b(mod C)。再利用n=2,验证b是否正确。
    #include <cstdio>
    using namespace std;
    typedef long long LL;
    LL C,k1,b1,k2;
    LL npow(LL x,LL n,LL mod)
    {
        LL res=1;
        while(n>0)    
        {
            if(n&1)    res=(res*x)%mod;
            x=(x*x)%mod;
            n>>=1;
        }
        return res;
    }
    int main()
    {
        int cas=0;
        while(scanf("%lld%lld%lld%lld",&C,&k1,&b1,&k2)!=EOF)
        {
            bool tag=false;
            printf("Case #%d:
    ",++cas);
            for(LL a=1;a<C;a++)
            {
                LL b=C-npow(a,k1+b1,C);
                LL x=npow(a,2*k1+b1,C);
                LL y=npow(b,k2+1,C);
                if((x+y)%C==0)
                {
                    tag=true;
                    printf("%lld %lld
    ",a,b);
                }    
            }
            if(!tag)
            {
                printf("-1
    ");
            }
        }
        return 0;
    }
  • 相关阅读:
    用户登录
    open >>>文件操作
    随机数
    内置函数
    函数练习
    函数的动态参数
    函数的指定参数
    函数的普通参数
    函数的初步认识
    copy
  • 原文地址:https://www.cnblogs.com/program-ccc/p/5814328.html
Copyright © 2011-2022 走看看