bzoj 1799: [Ahoi2009]self 同类分布 (数位DP)
来源:互联网 发布:javabean连接数据库 编辑:程序博客网 时间:2024/05/16 01:24
题目描述
传送门
题目大意:给出a,b,求出[a,b]中各位数字之和能整除原数的数的个数。
题解
枚举数位和sum,然后用数位DP计算。
代码
#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#define N 203#define LL long longusing namespace std;LL f[21][N][N][2],l,r;int cnt,a[N];LL solve(LL x){ if (x==0) return 0; cnt=0; while (x!=0) { a[++cnt]=x%10; x/=10; } reverse(a+1,a+cnt+1); LL ans=0; for (int sum=1;sum<=18*9;sum++){ memset(f,0,sizeof(f)); f[0][0][0][1]=1; for (int i=0;i<=cnt;i++) for (int j=0;j<=18*9;j++) for (int k=0;k<=18*9;k++) for (int l=0;l<=1;l++) if (f[i][j][k][l]){ for (int t=0;t<=9;t++){ if (l==1&&t>a[i+1]) break; f[i+1][j+t][(k*10+t)%sum][(l==1&&t==a[i+1])?1:0]+=f[i][j][k][l]; } } ans+=f[cnt][sum][0][0]+f[cnt][sum][0][1]; } return ans;}int main(){ freopen("a.in","r",stdin); scanf("%lld%lld",&l,&r); printf("%lld\n",solve(r)-solve(l-1)); }
阅读全文
0 0
- bzoj 1799: [Ahoi2009]self 同类分布 (数位DP)
- bzoj 1799: [Ahoi2009]self 同类分布(数位DP)
- 【数位DP】【bzoj 1799】: [Ahoi2009]self 同类分布
- BZOJ 1799 [Ahoi2009]self 同类分布【数位dp
- BZOJ 1799 [Ahoi2009]self 同类分布 数位DP
- [BZOJ]1799: [Ahoi2009]self 同类分布 数位DP
- Bzoj-1799 self 同类分布(数位DP)
- bzoj1799 [Ahoi2009]self 同类分布 数位dp
- bzoj1799[Ahoi2009]self 同类分布 【数位dp】
- BZOJ 1799 self 同类分布 (数位dp)
- bzoj 1799: [Ahoi2009]self 同类分布 题解
- bzoj 1799: [Ahoi2009]self 同类分布
- bzoj 1799: [Ahoi2009]self 同类分布
- HYSBZ 1799 self 同类分布 数位DP -
- self 同类分布 (数位dp)
- 【bzoj1799】 AHOI2009 同类分布 数位dp
- 【bzoj1799】【AHOI2009】【同类分布】【数位dp】
- bzoj1799 self 同类分布 数位Dp
- MFC + Opencv 下面调用HoughCircles 报错
- arm-linux-gcc-4.4.3交叉编译python2.7.3并移植到ARM
- 安卓开发进阶之弹性布局FlexboxLayout--Part2(翻译)
- centOS7.0上安装使用zookeeper环境
- 小学期链表作业
- bzoj 1799: [Ahoi2009]self 同类分布 (数位DP)
- CodeVS 1215 迷宫 题解
- 入门经典_Chap06_例题[二]:二叉树的指针及数组实现
- webrtc编译arm版本
- 【数据压缩】H.264编码
- 【Python那些事儿】数据放缩
- [leetcode]576. Out of Boundary Paths
- Git submodule (1)
- Windows下Mysql5.7忘记root密码的解决方法