HDU 2089 数位DP
来源:互联网 发布:dialog数据库 编辑:程序博客网 时间:2024/04/20 20:22
状态转移方程
dp[i][0]=dp[i-1][0]*9-dp[i-1][1]; //不含62和4
dp[i][1]=dp[i-1][0]; //不含62和4,但2结尾
dp[i][2]=dp[i-1][2]*10+dp[i-1][1]+dp[i-1][0]; //含62和4
#include <cstdlib>#include <cctype>#include <cstring>#include <cstdio>#include <cmath>#include <algorithm>#include <vector>#include <string>#include <iostream>#include <sstream>#include <map>#include <set>#include <queue>#include <stack>#include <fstream>#include <numeric>#include <iomanip>#include <bitset>#include <list>#include <stdexcept>#include <functional>#include <utility>#include <ctime>#include <cassert>#include <complex>using namespace std;typedef long long ll;typedef long double ld;const int int_max = 0x07777777;const int int_min = 0x80000000;const int inf=0x20202020;const ll mod=1000000007;const double eps=1e-9;const double pi=3.1415926535897932384626;const int DX[]={1,0,-1,0},DY[]={0,1,0,-1};ll powmod(ll a,ll b) {ll res=1;a%=mod;for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}ll powmod(ll a,ll b,ll mod) {ll res=1;a%=mod;for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}int n,m;int dp[10][3];int a[10];int solve(int len){ int sum = 0; int last=0,flag=0; for(int i = len; i >= 1; i--){ sum += a[i]*dp[i-1][2]; if(flag){ sum += a[i]*dp[i-1][0]; } if(!flag&&a[i]>6) sum += dp[i-1][1]; if(!flag&&last==6&&a[i]>2) sum += dp[i][1]; if(!flag&&a[i]>4) sum += dp[i-1][0]; if((last==6&&a[i]==2) || a[i]==4) flag = 1; last = a[i]; } return sum;}int main(){ memset(dp,0,sizeof(dp)); dp[0][0] = 1; for(int i = 1; i < 10; i++){ dp[i][0] = 9*dp[i-1][0]-dp[i-1][1]; dp[i][1] = dp[i-1][0]; dp[i][2] = dp[i-1][0]+dp[i-1][1]+dp[i-1][2]*10; } while(scanf("%d %d", &n, &m)!=EOF){ if(n==0 && m==0) break; int t = m-n+1; //n = n-1; memset(a,0,sizeof(a)); int len = 0; while(n){ a[++len] = n%10; n /= 10; } //a[len+1] = 0; int ret1 = solve(len); memset(a,0,sizeof(a)); len = 0; m++; while(m){ a[++len] = m%10; m /= 10; } //a[len+1] = 0; int ret2 = solve(len); printf("%d\n",t-(ret2-ret1)); }}
0 0
- HDU 2089 数位DP
- Hdu 2089 数位dp
- HDU 2089 数位DP
- 数位DP hdu-2089
- HDU 2089 数位DP
- HDU 2089【数位DP】
- 【数位DP】 HDU 2089
- 数位DP hdu 2089
- hdu 2089 数位DP
- hdu 2089 数位dp
- hdu 2089 数位dp
- hdu 2089 数位dp
- HDU 2089 数位DP
- HDU 2089 数位DP
- hdu 2089 数位DP
- HDU-2089-数位dp
- HDU 2089 数位DP
- hdu 2089 数位dp
- eclipse android项目 设置默认编码为Utf-8
- 可穿戴产品会火吗?可穿戴产品的工业设计导向
- android ViewGroup中的LayoutParams的理解和说明
- Android getWidth和getMeasuredWidth的正解
- Android SQLite使用详解
- HDU 2089 数位DP
- 黑马程序员--【源码+碉堡】Java控制台版贪吃蛇震撼开源
- 利用游标和存储过程修改数据库的架构归属
- File*,http,cache
- poj 2728 最优比例生成树(01分数规划)模板
- Ocbective-c中的Thread signal:SIGABRT 以及EXC_BAD_ACCESS问题
- findViewById
- ./configure: error: the HTTP rewrite module
- OpenCV中的SVM参数优化