数位DP呀呀

编程入门 行业动态 更新时间:2024-10-21 05:34:58

<a href=https://www.elefans.com/category/jswz/34/1747675.html style=数位DP呀呀"/>

数位DP呀呀

#include<bits/stdc++.h>
using namespace std;
int f[1005][3];
//lm=1为有限制
int a[1005];
int dfs(int pos,int st,int lm)
{if(pos==0)return st==2;if(f[pos][st]!=-1&&lm==0)return f[pos][st];int x=lm?a[pos]:9;int ans=0;for(int i=0;i<=x;i++){if(st==2||i==4||(st==1&&i==8))ans+=dfs(pos-1,2,lm&&i==x);else if(i==3){ans+=dfs(pos-1,1,lm&&i==x);}else{ans+=dfs(pos-1,0,lm&&i==x);}}if(lm==0)f[pos][st]=ans;return ans;
}
int cal(int x)
{int cnt=0;while(x){a[++cnt]=x%10;x=x/10;}memset(f,-1,sizeof(f));f[0][0]=1;return dfs(cnt,0,1);
}
int main()
{int n,m;while(1){cin>>n>>m;if(n==m&&!n)break;int ans=cal(m);ans-=cal(n-1);cout<<ans<<'\n';}}

从最高位开始往下记忆化搜索,当当前位置和下一位置同时有限制才能进行限制

更多推荐

数位DP呀呀

本文发布于:2024-02-05 08:18:23,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1673743.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:数位   DP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!