博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU5690: All X(大数取模,同余)
阅读量:7117 次
发布时间:2019-06-28

本文共 1726 字,大约阅读时间需要 5 分钟。

All X

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


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”。
 

Source

计算循环节,注意循环节不一定从第一位开始。

# include 
# include
int main(){ int i, t, x, k, c, icount, cnt, vis[10005], num[10005]; long long ans, m; scanf("%d",&t); for(int T=1; T<=t; ++T) { memset(vis, 0, sizeof(vis)); memset(num, 0, sizeof(num)); icount = cnt = ans = 0; scanf("%d%lld%d%d",&x,&m,&k,&c); for(i=1; i<=m; ++i) { ans = (ans*10 + x) % k; if(!vis[ans]) { num[++icount] = ans; vis[ans] = 1; } else break; } if(i==m+1) { if(ans==c) printf("Case #%d:\nYes\n",T); else printf("Case #%d:\nNo\n",T); continue; } for(i=1; i<=icount; ++i) if(num[i]==ans) break; cnt = (m-i+1)%(icount-i+1); if(cnt==0) ans = num[icount]; else ans = num[i-1+cnt]; if(ans==c) printf("Case #%d:\nYes\n",T); else printf("Case #%d:\nNo\n",T); } return 0;}

转载于:https://www.cnblogs.com/junior19/p/6730081.html

你可能感兴趣的文章
infoq的全球开发者大会本届与往届信息入口
查看>>
完整部署CentOS7.2+OpenStack+kvm 云平台环境(4)--用OZ工具制作openstack镜像
查看>>
使用 Fresco加载图片
查看>>
百度CDN公共库
查看>>
Annotation注解
查看>>
redhat ping不通外网的解决办法
查看>>
SqlServer Analysis Service的事实维度关系
查看>>
不错的电商运营指标
查看>>
mybatis传递参数到mapping.xml
查看>>
微信小程序开发教程第六章:「我」的页面开发
查看>>
Atitit.java eval功能的实现 Compiler API
查看>>
模拟退火算法简介
查看>>
窗体作为控件嵌入panel
查看>>
java @param参数注解
查看>>
GSAP 官方文档(结贴)
查看>>
百度陆奇最新内部演讲:如何成为一个优秀的工程师?
查看>>
Beam概念学习系列之SDKs
查看>>
pycharm环境下:同文件夹下文件(.py)之间的调用,出现红线问题
查看>>
log4j日志级别
查看>>
【重磅】Spring Boot 2.1.0 权威发布
查看>>