【BZOJ 1833】 [ZJOI2010]count 数字计数|数位DP
2016-04-13 20:13
435 查看
一位一位的来计算
然后0会计算多次 然后减掉
然后0会计算多次 然后减掉
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; #define LL long long const int MAXN=20; LL a[MAXN],b[MAXN],s[MAXN],mi[MAXN]; void f(LL x,LL a[]) { int top=0;LL tmp=x; while(tmp!=0) s[++top]=tmp%10,tmp/=10; for(int i=top;i>=1;i--) { for(int j=0;j<=9;j++) a[j]+=mi[i-1]*(i-1)*s[i]; for(int j=0;j<=s[i]-1;j++) a[j]+=mi[i]; a[s[i]]+=x%mi[i]+1; } for(int i=1;i<=top;i++) a[0]-=mi[i]; } int main() { mi[1]=1; for(int i=2;i<=19;i++) mi[i]=mi[i-1]*10; LL s,t; scanf("%lld %lld",&s,&t); f(t,a); f(s-1,b); printf("%lld",a[0]-b[0]); for(int i=1;i<=9;i++) printf(" %lld",a[i]-b[i]); return 0; }
相关文章推荐
- hdu4971A simple brute force problem.【最大权闭合图】
- Qt中关于中文字符编码问题
- 将安全信息应用到以下对象时发生错误
- 如何通过注册表修改桌面计算机/用户文档图标
- 创建数据库以及其属性的sql语句
- Redis参数配置说明
- 支持向量机(svm)新手入门篇
- c++ STL学习笔记
- 链表中倒数第k个结点
- C#中struct的字节对齐、转换操作和复制为二进制数据(byte[])
- MSYS2 环境搭建(在Qt Creator可以设置环境变量来进行引用这些库)
- jsp基础学习
- Quartz
- C++ stl set用法例子
- 关于QEMU中的类型算法
- Python smtplib发送邮件 包含文本、附件、图片
- mybaits 一对多 关联查询
- 九宫格dfs
- 2、将el表达式list遍历的的数值,传递到jquery的click函数里面,实现删除
- Android开发工具的下载