• B


    Problem Description
    F(x,m) 代表一个全是由数字x组成的m位数字。请计算,以下式子是否成立:

    F(x,m) mod k  c
     
    Input
    第一行一个整数T,表示T组数据。
    每组测试数据占一行,包含四个数字x,m,k,c

    1x9 
    1m1010
    0c<k10,000
     
    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”。
     
    思路:
    注意到:xx……x = x*(10^m-1)/ 9;
    因此 c = (xx……x)%k;
            (c * 9)%k = (x*(10^m) - x)%k;
            (c*9 + x)%k = (x*(10^m))%k;
    用快速幂求得10^m ;
    验证上式是否正确即可。
     
    代码:
     1 #include<cstdio>
     2 #include<iostream>
     3 using namespace std;
     4 typedef long long LL;
     5 
     6 LL PowerMod(LL a,LL b,LL c)
     7 {
     8     LL ans=1;
     9     a=a%c;
    10     while(b>0)
    11     {
    12         if(b%2==1)
    13             ans=(ans*a)%c;
    14         b=b/2;
    15         a=(a*a)%c;
    16     }
    17     return ans;
    18 }
    19 
    20 int main()
    21 {
    22     LL cas=1,t;
    23     LL m,x,c,k;
    24     scanf("%lld",&t);
    25     while(t--)
    26     {
    27         scanf("%lld%lld%lld%lld",&x,&m,&k,&c);
    28         LL p=PowerMod(10,m,k);
    29         if(x*p%k==(9*c+x)%k) /// xx……x = x*(m-1)/9
    30             printf("Case #%lld:
    Yes
    ",cas++);
    31         else
    32             printf("Case #%lld:
    No
    ",cas++);
    33     }
    34     return 0;
    35 }
    All X
    まだまだだね
  • 相关阅读:
    人生小悟1
    对偶传播神经网络(CPN)
    对偶传播神经网络(CPN)
    学习向量量化神经网络
    学习向量量化神经网络
    自组织特征映射神经网络(SOFM)
    自组织特征映射神经网络(SOFM)
    竞争学习的基本概念和原理
    竞争学习的基本概念和原理
    人工神经网络基础概念、原理知识(补)
  • 原文地址:https://www.cnblogs.com/xxQ-1999/p/7809542.html
Copyright © 2020-2023  润新知