HDU3555[Bomb]--数位DP

原创 2017年10月11日 20:21:04

【链接】
hdu3555

【解题报告】
简单的数位DP

#include<cstdio>
#include<cstring>
#define LL long long
using namespace std;
const int maxn=25;
int T,n,a[maxn];
LL m,f[maxn][10];
inline LL Read()
{
    LL res=0; char ch=getchar();
    while (ch<'0'||ch>'9') ch=getchar();
    while (ch>='0'&&ch<='9') res=res*10+ch-48,ch=getchar();
    return res;
}
LL Dfs(int x,int las,bool pd)
{
    if (x>n) return 1;
    if (!pd&&f[x][las]) return f[x][las];
    int MAX=9; if (pd) MAX=a[x]; f[x][las]=0;
    for (int i=0; i<=MAX; i++)
     if (las!=4||(las==4&&i!=9)) f[x][las]+=Dfs(x+1,i,pd&(i==a[x]));
    return f[x][las];
}
void Work()
{
    a[0]=n=m=0; char ch=getchar();
    while (ch<'0'||ch>'9') ch=getchar();
    while (ch>='0'&&ch<='9') m=m*10+ch-48,a[++n]=ch-48,ch=getchar();
    printf("%lld\n",m-Dfs(1,0,1)+1);
}
int main()
{
    T=Read();
    while (T--) Work();
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

HDU3555 Bomb 数位DP经典题

传送门:HDU3555 题意:1到n区间内有多少个数字含有‘49’。 题解:典型数位DP的题目,这次做个题的收获是学到了通用的递推解数位DP的方法。 递推解法: //dp[i][j]:...

HDU 3555 Bomb 数位DP

一:题意  给定一个N,要求你求出[0,N]内所有含有49的数字个数,其中N (1 二:解析  1,对于这一类数位dp,需要扫描[0,N]区间所有数的每一位,为了避免对每一个数取出每位数。...

hdu 3555 Bomb 经典数位DP

传送门:Bomb题目大意给定一个整数N,求1~N中连续49的个数解题思路dp[i][0]表示长度为i位,不包含49的个数 dp[i][1]表示长度为i位,第一位是9的个数 dp[i][2]表示长度...

hdu3555 Bomb数位dp裸题

Bomb Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others) Total Su...

hdu3555---Bomb(数位dp,水)

Problem Description The counter-terrorists found a time bomb in the dust. But this time the terrori...

HDU-3555Bomb 数位dp

不知为何,我感觉数位dp和带权并查集好像,两个无论原理还是做法都没什么关系,但我感觉思想有一丝联系,都是通过一种基础的算法延伸出来的,并且不同的题目虽然实现不一致,但只要摸清那个关系,之后就都是固定的...
  • jerans
  • jerans
  • 2017年01月17日 00:36
  • 131

hdu3555 Bomb --数位dp

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题意:1---n之间的数包含49有多少个。 分析:看代码。 #de...
  • LaoJiu_
  • LaoJiu_
  • 2016年11月02日 09:34
  • 240

数位DP-HDU-3555-Bomb

BombTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total Subm...

[ACM] hdu 3555 Bomb (数位DP,统计1-N中含有“49”的总数)

Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others) Total S...

(数位DP 1.2)hdu 3555 Bomb(统计1~n中,包含49的数的个数)

题目:BombTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Sub...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU3555[Bomb]--数位DP
举报原因:
原因补充:

(最多只允许输入30个字)