hdu3555 Bomb(数位dp)
来源:互联网 发布:联通小米3支持4g网络吗 编辑:程序博客网 时间:2024/06/11 23:10
hdu3555
题目
求给定n以下的含连续49的数字的个数。
思路
设置一个pre表示有没有4,在dfs中转移的时候9要用到,貌似要考虑0的问题。
代码
#include<iostream>#include<cstring>#include<cstdio>#include<vector>#include<queue>#include<algorithm>#include<stack>using namespace std;typedef long long ll;ll dp[40][2];int dis[30];ll dfs(int len,int pre,int lim){ if(len<0) return 1; if(!lim&&dp[len][pre]!=-1) return dp[len][pre]; ll res=0; int u=lim?dis[len]:9; for(int s=0; s<=u; s++) { if(!(pre&&s==9)) { res+=dfs(len-1,s==4,lim&&s==u); } } if(!lim) return dp[len][pre]=res; return res;}ll n;ll solve(ll u){ int len=0; while(u) { dis[len++]=u%10; u/=10; } return dfs(len-1,0,1);}int main(){ int T; scanf("%I64d",&T); while(T--) { scanf("%I64d",&n); memset(dp,-1,sizeof(dp)); printf("%I64d\n",n-(solve(n)-1)); } return 0;}
0 0
- 【数位DP】 hdu3555 Bomb
- 【hdu3555】【数位DP】Bomb
- 【数位DP】Bomb HDU3555
- hdu3555 Bomb 数位DP
- HDU3555:Bomb(数位DP)
- hdu3555 Bomb (数位DP)
- HDU3555 Bomb 数位DP
- Hdu3555 - Bomb - 数位dp
- hdu3555 Bomb 数位dp
- hdu3555 Bomb(数位DP)
- HDU3555 Bomb 数位DP
- HDU3555 Bomb 数位DP
- HDU3555 Bomb(数位DP)
- hdu3555 Bomb(数位dp)
- 【数位DP】HDU3555-Bomb
- hdu3555 Bomb --数位dp
- HDU3555 Bomb[数位DP]
- hdu3555 Bomb(数位DP)
- 洛谷1967 火车运输
- 你上班价值的在哪里?
- windows Socket编程之重叠IO模型
- Constexpr and Constant Expressions
- POJ2606 Rabbit hunt
- hdu3555 Bomb(数位dp)
- 数据结构实验之串一:KMP简单应用
- UVA-10200(素数)
- java中else if比switch效率低的原因
- 神经网络识别车牌字符
- 对比JAVA学习PHP系列:流程控制与异常处理
- java采取poi处理excel
- UVA 437 The Tower of Babylon(DAG上的动态规划)
- POJ 2253 Frogger