hdu5690(快速幂||减半)All X
来源:互联网 发布:2017淘宝开店认证手机 编辑:程序博客网 时间:2024/05/16 06:37
All X
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2165 Accepted Submission(s): 912
Problem Description
Input
第一行一个整数T ,表示T 组数据。
每组测试数据占一行,包含四个数字x,m,k,c
1≤x≤9
1≤m≤1010
0≤c<k≤10,000
每组测试数据占一行,包含四个数字
Output
对于每组数据,输出两行:
第一行输出:"Case #i:"。i 代表第i 组测试数据。
第二行输出“Yes” 或者 “No”,代表四个数字,是否能够满足题目中给的公式。
第一行输出:"Case #i:"。
第二行输出“Yes” 或者 “No”,代表四个数字,是否能够满足题目中给的公式。
Sample Input
31 3 5 21 3 5 13 5 99 69
Sample Output
Case #1:NoCase #2:YesCase #3:Yes思路1:公式:(10^m−1)×x(mod9k)==9c#include<cstdio>#include<iostream>#define ll long longusing namespace std;ll pow(ll a,ll b,ll c){ll ans=1;while(b){if(b&1) ans=(ans*a)%c;a=(a*a)%c;b>>=1;}return ans;}bool solve(ll x,ll m,ll k,ll c){k=9*k,c=9*c;ll ans=pow(10,m,k);ans=(ans-1+k)%k;ans=(ans*x)%k;return ans==c;}int main(){int T,kase=0;ll x,m,k,c;scanf("%d",&T);while(T--){scanf("%lld%lld%lld%lld",&x,&m,&k,&c);printf("Case #%d:\n%s\n",++kase,solve(x,m,k,c)?"Yes":"No");}return 0;}
思路2:因为k小于10000,所以可以找个循环节思路3:拆半,感觉和找循环节有点像,但是更加巧妙#include<cstdio>#include<iostream>#define ll long longusing namespace std;bool solve(ll x,ll m,ll k,ll c){ll t1=0,t2=1,ans=0;for(int i=0;i<10000;++i){t1=(t1*10+x)%k;t2=t2*10%k;}for(int i=0;i<m/10000;++i)ans=(ans*t2*10+t1)%k;for(int i=0;i<m%10000;++i)ans=(ans*10+x)%k;return ans==c;}int main(){int T,kase=0;ll x,m,k,c;scanf("%d",&T);while(T--){scanf("%lld%lld%lld%lld",&x,&m,&k,&c);printf("Case #%d:\n%s\n",++kase,solve(x,m,k,c)?"Yes":"No");}return 0;}
阅读全文
1 0
- hdu5690(快速幂||减半)All X
- HDU5690 All X(快速幂)
- 快速幂 hdu5690 All X
- hdu5690百度之星All X(矩阵快速幂)
- HDU5690: All X(大数取模,同余)
- hdu5690 快速模幂
- HDU5690-All X-循环节应用
- All X(快速幂 + 循环节)
- hdu 5690 All X(快速幂)
- HDU 5690 All X(快速幂)
- POJ-5690-All X(快速幂/循环节)
- 数论(快速幂) HDU-5690 All X
- hdu 5690 All X(快速幂)
- HDU 5690 All X 矩阵快速幂
- HDU 5690 All X【快速幂】
- HDU 5690 All X 【思维快速幂】
- 【矩阵快速幂】[2016"百度之星" - 初赛(Astar Round2A)]All X
- LeetCode - Pow(x, n) (快速幂)
- android中自定义一个图形,单点移动缩小的效果
- jQuery 将本地时间转换成 UTC 时间,计算时差,将UTC时间转换成 本地 时间
- MySQL学习随记---存储函数
- C语言 搜索字符串中的逗号有感(关于数据中的ASCII码)
- Android 复制和粘贴功能
- hdu5690(快速幂||减半)All X
- [Leetcode] 333. Largest BST Subtree 解题报告
- ORA-12518
- 【已解决】C#获取CPU温度支持Win10(OpenHardwareMonitor)
- 屏幕分辨率
- 欢迎使用CSDN-markdown编辑器
- build opencv cmake-gui 配置eigen路径
- 题目十九 汽车考察
- 大数定律1