HDU 2089不要62 数位dp
来源:互联网 发布:巴拉密 知乎 编辑:程序博客网 时间:2024/06/05 06:15
#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int N=10;int dp[N][3],a[N];int l,r;void init(){ dp[0][0]=1; for(int i=1;i<N;i++){ dp[i][0]=dp[i-1][0]*9-dp[i-1][1]; dp[i][1]=dp[i-1][0]; dp[i][2]=dp[i-1][2]*10+dp[i-1][0]+dp[i-1][1]; }}int f(int n){ memset(a,0,sizeof(a)); int len=0,ans=n,tmp=0; bool flag=false; while(n){ a[++len]=n%10; n/=10; } for(int i=len;i>=1;i--){ tmp+=dp[i-1][2]*a[i]; if(flag){ tmp+=dp[i-1][0]*a[i]; } if(!flag && 6==a[i+1] && a[i]>2) tmp+=dp[i][1];//dp[i][1] if(!flag && a[i]>4){ tmp+=dp[i-1][0]; } if(!flag && a[i]>6) tmp+=dp[i-1][1]; if(a[i]==4 || (6==a[i+1]&&2==a[i])) flag=true; } return (ans-tmp);}int main(){ init(); while(scanf("%d%d",&l,&r),l+r){ cout<<f(r+1)-f(l)<<endl; } return 0;}
0 0
- hdu 2089 不要62 数位DP
- hdu 2089 不要62 数位dp
- hdu 2089 不要62 数位dp
- hdu 2089 不要62(数位dp入门)
- [HDU 2089]不要62[数位DP]
- hdu 2089 不要62(数位dp)
- Hdu 2089 不要62 (暴力/数位dp)
- hdu 2089 不要62 (数位DP)
- HDU 2089 不要62 数位dp入门
- hdu 2089(不要62)数位DP
- 【数位DP】【HDU 2089】不要62
- hdu 2089 不要62(数位DP)
- hdu 2089 不要62 --- 数位dp
- 数位DP小记 + HDU 2089 不要62
- HDU 2089 不要62(数位dp)
- 数位 dp HDU 2089 不要62
- HDU 2089 不要62(数位DP)
- hdu 2089 不要62--数位dp入门
- 04.工厂方法模式【FACTORY METHOD PATTERN】
- Php面向对象 – 类常量
- 有一个NSStirng类型,retain方式声明的name属性的setter方法内部每一行代码的作用?
- HDU 4121 Xiangqi
- poj 2752 Seek the Name, Seek the Fame
- HDU 2089不要62 数位dp
- 用google 实现CSDNblog 搜索
- 基于mapreducer的图算法
- HDU 3555Bomb数位dp
- maven核心,pom.xml详解
- 闪烁的爱心桃
- Windows多媒体API -低阶(一)
- POJ-3252 Round Numbers
- test