hdu3709 枚举
来源:互联网 发布:oracle数据库游标分页 编辑:程序博客网 时间:2024/05/29 07:49
#include<bits/stdc++.h>#define ll long longusing namespace std;ll m,n;ll dp[20][2005][20];int digit[20];ll dfs(int pos,int state,int pivot,bool limit){ if(pos<=0)return state==0; if(state<0)return 0; if(!limit&&dp[pos][state][pivot]!=-1)return dp[pos][state][pivot]; ll ans=0; int up=limit?digit[pos]:9; for(int i=0;i<=up;i++){ if(pos>pivot)ans+=dfs(pos-1,state+i*(pos-pivot),pivot,limit&&i==digit[pos]); else ans+=dfs(pos-1,state-i*(pivot-pos),pivot,limit&&i==digit[pos]); } if(!limit)dp[pos][state][pivot]=ans; return ans;}ll solve(ll n){ int pos=0; while(n){ digit[++pos]=n%10; n/=10; } ll ans=0; //枚举pivot的位置 for(int i=1;i<=pos;i++){ ans+=dfs(pos,0,i,true); } //注意前导0不符合条件 return ans - (pos-1); //减去 00 , 000 , 0000的情况}int main(){ int t; cin>>t; while(t--){ memset(dp,-1,sizeof(dp)); cin>>n>>m; ll ans=solve(m)-solve(n-1); cout<<ans<<endl; } return 0;}
阅读全文
0 0
- hdu3709 枚举
- 数位DP hdu3709 枚举
- hdu3709
- HDU3709
- HDU3709
- hdu3709 Balanced Number
- hdu3709(数位dp)
- hdu3709 Balanced Number
- hdu3709 Balanced Number
- 【HDU3709】【Balanced Number】
- hdu3709 数位dp
- hdu3709: Balanced Number
- hdu3709 Balanced Number
- 【HDU3709】 Balanced Number
- HDU3709 Balanced Number
- hdu3709——数位dp
- HDU3709 Balanced Number 数位DP
- [HDU3709]Balanced Number && 数位DP
- 抽象类和接口
- vue.js入门笔记 记录
- 内核级驱动对抗Hook ZwSetInformationFile反删除技术
- AngularJS+查询+敏感字+排序+添加
- Andriodjie——OKhttp拦截器
- hdu3709 枚举
- HTML表格
- 下载百度编辑器ueditor
- RecyclerView的使用
- 【深度相机系列二】深度相机原理揭秘--飞行时间(TOF)
- 为什么要进行内存对齐以及对齐规则
- 移动端使用PhotoSwipe 图片放大浏览
- 自定义view-onMeasure的理解
- angularjs实现