CodeForces55D Beautiful numbers
来源:互联网 发布:mac iphoto gif 编辑:程序博客网 时间:2024/06/16 07:08
————————————————————————————————————
题目的意思是求一个区间有多少个数,数要求能被他的每一位整除
思路:数位dp,开3位数组记录长度位len的,到len为止和为sum的,sum容易很大,但可以知道1到9的最小公倍数为2520,所以可以对2520取模,LCM为lcm的书有多少个,然后dfs递归求解
#include <iostream>#include <cstring>#include <string>#include <vector>#include <queue>#include <cstdio>#include <set>#include <cmath>#include <map>#include <algorithm>#define INF 0x3f3f3f3f#define MAXN 10000005#define Mod 10001using namespace std;#define LL long longLL dp[20][3000][50];int a[20],index[3000];int mod;int gcd(int x,int y){ return x%y==0?y:gcd(y,x%y);}int _lcm(int x,int y){ return x*y/gcd(x,y);}void init(){ mod=1; for(int i=1; i<10; i++) { mod=_lcm(mod,i); } int ct=0; for(int i=1; i<=mod; i++) { if(mod%i==0) index[i]=ct++; } memset(dp,-1,sizeof dp);}LL dfs(int len,int sum,int lcm,bool limit){ if(len<0) return sum%lcm==0; if(dp[len][sum][index[lcm]]!=-1&&!limit) return dp[len][sum][index[lcm]]; int up=limit?a[len]:9; LL ans=0; for(int i=0; i<=up; i++) { ans+=dfs(len-1,(sum*10+i)%mod,i?_lcm(lcm,i):lcm,limit&&i==up); } return limit?ans:dp[len][sum][index[lcm]]=ans;}LL solve(LL x){ int cnt=0; while(x>0) { a[cnt++]=x%10; x/=10; } return dfs(cnt-1,0,1,1);}int main(){ int T; LL n,m; init(); for(scanf("%d",&T); T--;) { scanf("%lld%lld",&n,&m); printf("%lld\n",solve(m)-solve(n-1)); } return 0;}
阅读全文
0 0
- codeforces55D Beautiful numbers
- CodeForces55D Beautiful numbers
- codeforces55D. Beautiful numbers(数位dp+数论)
- CodeForces55D
- Beautiful Numbers
- Beautiful numbers
- Beautiful Numbers
- Beautiful numbers
- Beautiful numbers
- Why are numbers beautiful?
- Codeforces_C - Beautiful Numbers
- codeforces Beautiful Numbers
- UVa 11472 - Beautiful Numbers
- codeforces300C. Beautiful Numbers
- C. Beautiful Numbers
- E - Beautiful Numbers
- 数位dp Beautiful numbers
- 数位dp, Beautiful numbers
- JAVA学习笔记-----正则表达式
- LeetCode55. Jump Game
- HDU 6198 number number number【找规律+矩阵快速幂】
- 键盘上所有快捷键
- gp tee大会上会有那些嘉宾,什么议题?
- CodeForces55D Beautiful numbers
- Linux笔记_设置普通用户的sudo
- kuangbin 简单搜索 J 双bfs
- xlistview
- muduo库整体架构简析
- xlistview
- Spring Redis与ActiveMQ发布订阅模式源码分析
- Python3:《机器学习实战》之朴素贝叶斯(3)过滤垃圾邮件
- 《effective c++》学习笔记(七)