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;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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和带权并查集好像,两个无论原理还是做法都没什么关系,但我感觉思想有一丝联系,都是通过一种基础的算法延伸出来的,并且不同的题目虽然实现不一致,但只要摸清那个关系,之后就都是固定的...

hdu3555 Bomb --数位dp

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题意:1---n之间的数包含49有多少个。 分析:看代码。 #de...

数位DP-HDU-3555-Bomb

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

hdu3555 Bomb 【数位dp+记忆化dfs】

题目链接:hdu3555 Bomb题意: t组样例,给正整数n(n<=263−1)(n<=2^{63}-1),输出[1, n]中包含”49”的数的个数。数位dp第一发; dp预处理出[0,10],...

HDU 3555 Bomb(数位DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555BombTime Limit: 2000/1000 MS (Java/Others) Mem...

[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...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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