hdu-5690-All X

来源:互联网 发布:王健林 知乎 编辑:程序博客网 时间:2024/04/29 09:39

All X

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


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
31 3 5 21 3 5 13 5 99 69
 

Sample Output
Case #1:NoCase #2:YesCase #3:Yes
Hint
对于第一组测试数据:111 mod 5 = 1,公式不成立,所以答案是”No”,而第二组测试数据中满足如上公式,所以答案是 “Yes”。
 

Source
2016"百度之星" - 初赛(Astar Round2A)

题意:

相当于       是否成立 ,其实这个公式相当于        是否成立 ,这样的话,就能用快速幂做了

coed : 
#include<cstdio>using namespace std;typedef long long int ll;ll power(ll a, ll b, ll mod) {    ll ret = 1;    while(b){        if(b & 1)            ret = ret * a % mod;        a=a*a%mod;        b>>= 1;    }    return ret;}int calc(ll x,ll m,ll k){    return  ((power(10,m,9*k)-1)/9 *x%k);}int main(){    int T,t=0;    ll x,m,k,c;    scanf("%d",&T);    while(T--){        scanf("%lld %lld %lld %lld",&x,&m,&k,&c);        if(calc(x,m,k)==c%k) printf("Case #%d:\nYes\n",++t);        else printf("Case #%d:\nNo\n",++t);    }    return 0;}



原创粉丝点击