HDU3555 数位DP入门!
来源:互联网 发布:win10 网络唤醒 编辑:程序博客网 时间:2024/05/01 22:00
#include <bits/stdc++.h>using namespace std;long long dp[25][5];int DIG[25];long long dfs(int pos,int len,bool limit){ if(pos <= 0){ return len == 2 ? 1 : 0; } if(!limit && dp[pos][len] != -1) return dp[pos][len]; int d = limit ? DIG[pos] : 9; long long ans = 0; for(int i=0;i<=d;i++){ if(len == 0){ ans += dfs(pos-1,i == 4 ? 1 : 0,limit && i == d); } else if(len == 1){ ans += dfs(pos-1,i == 9 ? 2 : i == 4 ? 1 : 0,limit && i == d); } else{ ans += dfs(pos-1,len,limit && i == d); } } if(!limit) dp[pos][len] = ans; return ans;}long long slove(long long n){ int len = 0; memset(dp,-1,sizeof(dp)); while(n){ DIG[++len]=n%10; n /= 10; } return dfs(len,0,true);}int main(){ ios::sync_with_stdio(false); int T; cin>>T; while(T--){ long long n; cin>>n; cout<<slove(n)<<endl; } return 0;}
0 0
- hdu3555 数位dp 入门
- HDU3555 数位DP入门!
- hdu3555 数位dp入门题
- hdu3555 + 2089 (数位dp入门)
- HDU3555 常规数位dp入门....
- 【数位DP入门】HDU3555 Bomb
- hdu3555(数位dp入门题)
- hdu3555+cf55D 数位dp入门题
- HDU3555:Bomb(数位dp入门)
- 【HDU3555】Bomb-数位DP入门题
- 【数位DP】 hdu3555 Bomb
- 【hdu3555】【数位DP】Bomb
- 【数位DP】Bomb HDU3555
- hdu3555 Bomb 数位DP
- hdu3555数位dp
- 数位dp hdu3555
- HDU3555:Bomb(数位DP)
- hdu3555 Bomb (数位DP)
- 将网页另存为PDF文件的方法
- trigger使用
- 统计学习浅谈
- 关于JSONP的原理和JQ中使用JSONP
- JSP自定义标签
- HDU3555 数位DP入门!
- 光耦合器原理及作用
- 【MySQL】基于MySQL的SQL优化(三)——对子查询进行优化
- 外形类似华为时钟的定时器控件
- Android多线程并发访问网络
- application.xml和spring-mvc.xml的区别
- ServletContextListener使用详解
- 安装memcached
- CSS选择器效率问题