zoukankan      html  css  js  c++  java
  • HDU 5690 All X

    All X

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 442    Accepted Submission(s): 203


    Problem Description
    F(x,m)代表一个全是由数字x组成的m位数字。请计算,以下式子是否成立:
    F(x,m) mod k ≡ c
     
     
     
    Input
    第一行一个整数T,表示T组数据。
    每组测试数据占一行,包含四个数字x, m, k, c
    1 <= x <= 9
    1 <= m <= 1010
    0 <= c < k <= 10,000
     
     
     
    x,m,k,c
    Output
    对于每组数据,输出两行:
    第一行输出:"Case #i:"。i 代表第 i组测试数据。
    第二行输出“Yes” 或者 “No”,代表四个数字,是否能够满足题目中给的公式。
     
    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”。
     
    Source
     
     
     
    解析:数学变形+快速幂。全是由数字x组成的m位数可表示为(10m-1)/9*x。
    则判断 (10m-1)/9*x%k == c 的真假可转化为判断 (10m-1)*x%(9*k) == 9*c 的真假(因为不能确定 k 为质数,无法使用逆元的概念求解,只能根据a/b%m == a%(m*b)/b来计算)。接下来用快速幂就可以了。
     
     
     
     1 #include <cstdio>
     2 
     3 int t;
     4 long long x, m, k, c;
     5 
     6 long long quickpowmod(long long x, long long y, long long mod)
     7 {
     8     long long ret = 1;
     9     while(y){
    10         if(y&1)
    11             ret = ret*x%mod;
    12         x = x*x%mod;
    13         y >>= 1;
    14     }
    15     return ret;
    16 }
    17 
    18 int main()
    19 {
    20     scanf("%d", &t);
    21     int cn = 0;
    22     while(t--){
    23         scanf("%I64d%I64d%I64d%I64d", &x, &m, &k, &c);
    24         printf("Case #%d:
    ", ++cn);
    25         long long mod = 9*k;
    26         long long p = quickpowmod(10, m, mod);
    27         if((p-1)*x%mod == 9*c)
    28             printf("Yes
    ");
    29         else
    30             printf("No
    ");
    31     }
    32     return 0;
    33 }
  • 相关阅读:
    测试
    CF868F Yet Another Minimization Problem
    MySQL常用命令
    mysql 5.7.18 winx64安装配置方法
    重装win7系统并激活
    JAVA创建子进程并处理waitFor() 阻塞问题
    Some code changes cannot be hot swapped into a running virtual machine
    java开发手册(阿里巴巴)——编程规约(部分)
    java——File
    OpenModelica Debug
  • 原文地址:https://www.cnblogs.com/inmoonlight/p/5515538.html
Copyright © 2011-2022 走看看