HDU 2089 不要62 (简单数位DP)
2015-07-22 15:42
393 查看
dp[i][0] 不存在
dp[i][1]不存在,上一位为6
dp[i][2] 存在
代码:
dp[i][1]不存在,上一位为6
dp[i][2] 存在
代码:
#include<cstdio> #include<cstring> #include<algorithm> #include<iostream> using namespace std; typedef __int64 LL; LL dp[20][3],l,r; LL bit[20],top; int get_news(int s,int d){ if(s == 0){ if(d == 4) return 2; if(d == 6) return 1; return 0; } if(s == 1){ if(d == 2 || d == 4) return 2; if(d == 6) return 1; return 0; } return 2; } LL dfs(int i,int s,bool e){ if(i == -1) return s == 2 ? 1 : 0; if(!e&&dp[i][s] != -1) return dp[i][s]; LL res = 0; int d,u = e ? bit[i] : 9; for(d = 0 ; d <= u ; d++){ res += dfs(i-1,get_news(s,d),e&&(d==u)); } return e?res:dp[i][s]=res; } LL solve(LL n){ top = 0; for(;n;n/=10) bit[top++] = n%10; return dfs(top-1,0,1); } int main(){ memset(dp,-1,sizeof(dp)); while(scanf("%I64d%I64d",&l,&r),l+r){ printf("%I64d\n",(r - l + 1)-solve(r)+solve(l-1)); } return 0; }
相关文章推荐
- 网页与浏览器高度相关参数$(document).heigth和$(window).heigth
- Ruby中 respond_to? 和 send 的用法
- 浅谈微信卡券功能开发(2)
- Spark1.2集群环境搭建(Standalone+HA) 4G内存5个节点也是蛮拼的
- 抓取网上图片,并生成缩略图存入本地
- 服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
- sort
- Spring基础——容器
- .htaccess
- ubuntu 问题解决
- Winfrom传值
- hdu 1217 Arbitrage
- web.xml路径匹配原则
- Linux系统防止黑客NMAP扫描的方法
- flume-ng+Kafka+Storm+HDFS 实时系统搭建
- Spark学习体系整理(基础篇、中级篇、高级篇所涉及内容)
- Android官方技术文档翻译——ApplicationId 与 PackageName
- C语言的inline(转载)
- ACM学习历程—HDU 1272 小希的迷宫(并查集)
- 激活任务栏的托盘程序窗口[特殊情况下使用]