数位dp-入门模板题 hdu2089
2024-08-25 02:51:15
#include<bits/stdc++.h>
using namespace std;
int dp[][],n,m;
void init(){//dp[i][j]:i位的数,最高位是j
dp[][]=;
for(int i=;i<=;i++)
for(int j=;j<;j++)
for(int k=;k<;k++)
if(j!= && !(j== && k==))
dp[i][j]+=dp[i-][k];
}
int solve(int n){//求[0,n)范围合法的个数
int res=,len=,d[]={};
while(n)d[++len]=n%,n/=;
d[len+]=;
for(int i=len;i>=;i--){//从高到低枚举每位
for(int j=;j<d[i];++j)//枚举最高位的数
if(d[i+]!= || j!=)
res+=dp[i][j];
if(d[i]== || d[i+]== && d[i]==)break;//后面的都不用枚举了
}
return res;
}
int main(){
init();
while(cin>>n>>m,m)cout<<solve(m+)-solve(n)<<endl;
}
最新文章
- iOS开发资源(持续更新)
- ORACLE10gRAC数据库迁移至10gRAC
- 基于ubuntu-2.6.35内核的SDIO-WiFi驱动移植
- object在ie8与ie9中与下文多出几像素问题
- hdoj 2111 Saving HDU
- (一)Windows下搭建PHP开发环境及相关注意事项
- SublimeText插件Anaconda如何关闭警告框
- javascript 中 ";!function(){}() "; 是什么意思?
- Floodlight Controller 路线原则
- 移动端mobiscroll时间插件的调用
- MarkDown语言
- webpack 4.0配置
- python爬虫-百度百科百名红通人员名单
- SQL Server中UPDATE和DELETE语句结合INNER/LEFT/RIGHT/FULL JOIN的用法
- Java中涉及到金额业务的处理
- IPutils
- ELK学习笔记之Logstash详解
- 小L的区间求和
- Mycat常见错误
- js 获取iframe页面元素