博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
A - Beautiful numbers
阅读量:5484 次
发布时间:2019-06-16

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

1     #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 8 using namespace std; 9 10 #define LL long long11 const int MOD = 2520;12 LL dp[20][50][2550];13 int a[20];14 int Hash[2550];15 16 LL gcd(LL a, LL b)17 {18 return b?gcd(b,a%b):a;19 }20 21 LL dfs(int pos, int num, int lcm, bool limit)22 {23 if(-1==pos) return num%lcm == 0;24 if(!limit && ~dp[pos][Hash[lcm]][num]) return dp[pos][Hash[lcm]][num];25 LL ans = 0;26 int end = limit?a[pos]:9;27 for(int i=0; i<=end; i++)28 ans += dfs(pos-1, (num*10+i)%MOD, i?lcm*i/gcd(lcm,i):lcm, limit&&i==a[pos]);29 if(!limit) dp[pos][Hash[lcm]][num] = ans;30 return ans;31 }32 33 LL solve(LL n)34 {35 int pos = 0;36 while(n)37 {38 a[pos++] = n%10;39 n /= 10;40 }41 return dfs(pos-1, 0, 1, 1);42 }43 44 int main()45 {46 int T;47 scanf("%d", &T);48 int cnt = 0;49 for(int i=1; i<=MOD; i++)50 if(MOD%i == 0)51 Hash[i] = cnt++;52 memset(dp, -1, sizeof(dp));53 while(T--)54 {55 long long l, r;56 scanf("%lld%lld", &l, &r);57 printf("%lld\n", solve(r)-solve(l-1));58 }59 return 0;60 }

 

转载于:https://www.cnblogs.com/ouyang_wsgwz/p/9126079.html

你可能感兴趣的文章
推荐一个很好的富文本web编辑器UEditor
查看>>
UNIX网络编程读书笔记:TCP输出、UDP输出和SCTP输出
查看>>
扩展 DbUtility (1)
查看>>
iOS开发UI篇—使用picker View控件完成一个简单的选餐应用
查看>>
使用UITableView实现图片视差效果
查看>>
CentOS RHEL 安装 Tomcat 7
查看>>
erlang如何有效地监视大量的并发连接
查看>>
Windows下Mysql5.6启用监控执行脚本的日志
查看>>
Apple Developer Registration and DUNS Number Not Accepted
查看>>
motion移植
查看>>
Hadoop学习笔记系列文章导航
查看>>
转一贴,今天实在写累了,也看累了--【Python异步非阻塞IO多路复用Select/Poll/Epoll使用】...
查看>>
四川大学线下编程比赛第一题:数字填充
查看>>
Codeforces Round #290 (Div. 2) C. Fox And Names dfs
查看>>
iOS开发-NSOperation与GCD区别
查看>>
扩展方法使用
查看>>
Win7 64位 php-5.5.13+Apache 2.4.9+mysql-5.6.19 配置
查看>>
HOJ 2245 浮游三角胞(数学啊 )
查看>>
spring mvc 和ajax异步交互完整实例
查看>>
不同页面之间实现参数传递的几种方式讨论
查看>>