HDU5898 数位DP
来源:互联网 发布:网络广告费价格 编辑:程序博客网 时间:2024/05/18 00:58
套的模板 其实数位DP很简单 就是深搜的过程中DP
#include <bits/stdc++.h>using namespace std;long long dp[25][25][25];int bit[25];long long dfs(int pos,int pre,int len,int limit){ if(pos <= 0) return (len&1) != (pre&1); if(!limit && dp[pos][pre][len] != -1) return dp[pos][pre][len]; int d = limit ? bit[pos] : 9; long long sum = 0; for(int i=0;i<=d;i++){ if(!len && !i){ sum += dfs(pos-1,1,0,limit && i == d); } else if(pre & 1){ if(!(i & 1) && len & 1) continue; sum += dfs(pos-1,i,i & 1 ? len+1 : 1,limit && i == d); } else{ if(i & 1 && !(len & 1)) continue; sum += dfs(pos-1,i,i & 1 ? 1 : len+1,limit && i == d); } } if(!limit) dp[pos][pre][len] = sum; return sum;}long long slove(long long n){ int len = 0; while(n){ bit[++len] = n%10; n /= 10; } return dfs(len,1,0,true);}int main(){ ios::sync_with_stdio(false); int T,cnt=0; cin>>T; while(T--){ memset(dp,-1,sizeof(dp)); long long l,r; cin>>l>>r; cout<< "Case #"<<++cnt<<": "; cout<< slove(r) - slove(l-1) <<endl; } return 0;}
1 0
- 数位dp,hdu5898
- hdu5898(数位dp)
- HDU5898 oddeven 数位DP
- HDU5898数位DP
- HDU5898 数位DP
- hdu5898数位dp
- hdu5898 odd-even number 【数位DP】
- hdu5898 odd-even number(数位dp)
- hdu5898 odd-even number(数位dp)
- HDU5898、 HDU 2089(数位DP)
- hdu5898 odd-even number(数位DP)
- hdu5898 数位dp+预处理 odd-even number
- HDU5898 odd-even number(数位dp)
- hdu5898 odd-even number (数位DP)
- 2016Shenyang网络预选赛1007 / HDU5898 (数位dp)
- HDU5898 odd-even number (数位DP)shenyang网赛
- 数位DP!!!(hdu3555 hdu2089 hdu5898 2016弱校10.5 I)
- 【hdu5898】【数位DP】odd-even number 【连续奇数长度为偶数,连续的偶数的长度是奇数】
- 史上最详细的iOS之事件的传递和响应机制-原理篇
- STL学习(二)--vector容器
- Unity3D开发注意事项
- sublime-text3安转插件出错问题
- Tomcat配置访问资源
- HDU5898 数位DP
- 支付宝在线支付接口开发教程与总结
- Fragment+ViewPager实现底部导航功能
- ImageButton的坑 ImageButton 有问题
- git 协议切换
- [F][2]NOIP 2014 解方程
- 使用Hugo搭建个人博客站点
- jstl标签--使用笔记
- Aspx编程中的调试方法