首页 > 代码库 > 【数位dp入门】【HDU2089】62
【数位dp入门】【HDU2089】62
为了我的点歪的技能树……
所以开始补一些sb的东西……
#include<bits/stdc++.h> typedef long long ll; using namespace std; int a[20],dp[20][2]; int dfs(int x,int pre,int vis,int lim){ if(x==-1)return 1; if(!lim&&dp[x][vis]!=-1)return dp[x][vis]; int maxv=lim?a[x]:9;int tmp=0; for(int i=0;i<=maxv;i++){ if(pre==6&&i==2)continue;if(i==4)continue; tmp+=dfs(x-1,i,i==6,lim&&i==a[x]); } if(!lim)dp[x][vis]=tmp; return tmp; } int solve(int x){ int len=0; while(x){a[len++]=x%10;x/=10;} return dfs(len-1,-1,0,1); } int main(){ int l,r; while(scanf("%d%d",&l,&r)&&(l+r)){ memset(dp,-1,sizeof(dp)); printf("%d\n",solve(r)-solve(l-1)); } }
【数位dp入门】【HDU2089】62
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。