hdu3555 Bomb

2023-11-07 20:49
文章标签 bomb hdu3555

本文主要是介绍hdu3555 Bomb,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Problem Description The counter-terrorists found a time bomb in the
dust. But this time the terrorists improve on the time bomb. The
number sequence of the time bomb counts from 1 to N. If the current
number sequence includes the sub-sequence “49”, the power of the blast
would add one point. Now the counter-terrorist knows the number N.
They want to know the final points of the power. Can you help them?

Input The first line of input consists of an integer T (1 <= T <=
10000), indicating the number of test cases. For each test case, there
will be an integer N (1 <= N <= 2^63-1) as the description.

The input terminates by end of file marker.

Output For each test case, output an integer indicating the final
points of the power.

数位dp。
预处理出i位数含49、不含49、不含49且首位为9的个数,然后从高位向低位统计。

#include<cstdio>
#include<cstring>
#include<iostream>
#define LL long long
using namespace std;
int a[25];
LL f[25][3];
int main()
{int T,len,i;bool flag;LL ans,n;scanf("%d",&T);f[0][0]=1;for (i=1;i<=21;i++){f[i][0]=f[i-1][0]*10-f[i-1][1];f[i][1]=f[i-1][0];f[i][2]=f[i-1][2]*10+f[i-1][1];}while (T--){cin>>n;n++;len=0;while (n){a[++len]=n%10;n/=10;}ans=0;flag=0;for (i=len;i;i--){ans+=f[i-1][2]*a[i];if (!flag){if (a[i]>4) ans+=f[i-1][1];}else ans+=f[i-1][0]*a[i];if (i<len&&a[i]==9&&a[i+1]==4) flag=1;}cout<<ans<<endl;}
}

这篇关于hdu3555 Bomb的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/366199

相关文章

bomb 实验

GDB常用命令: GDB调试常用命令-CSDN博客 原理: 编译与反汇编过程-CSDN博客 Bomb实验实现 阶段一:  分析 分配空间:sub $0x8,%rsp 为局部变量分配栈空间。设置参数:mov $0x402400,%esi 将字符串地址加载到 %esi。比较字符串:call 401338 <strings_not_equal> 调用函数比较字符串。判断结果:test %e

hdu2873 Bomb Game

Bomb Game Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 440 Accepted Submission(s): 206 Problem Description John and Jack, two mathema

HDU3555——Bomb(数位DP)

通常的数位dp可以写成如下形式: int dfs(int i, int s, bool e) {if (i==-1) return s==target_s;if (!e && ~f[i][s]) return f[i][s];int res = 0;int u = e?num[i]:9;for (int d = first?1:0; d <= u; ++d)res += dfs(i-1,

讲解pwngdb的用法,以csapp的bomb lab phase_1为例

参考资料 Guide to Faster, Less Frustrating Debugging 什么情况下会使用gbd 需要逆向ELF文件时(掌握gdb的使用,是二进制安全的基本功)开发程序时,程序执行结果不符合预期 动态调试ELF文件可以使用另外一种方法:IDA的远程linux动态调试。个人觉得使用ida调试更为方便,因为ida是图形化界面,那么可以使用鼠标交互,比如通过鼠标

Bomb HDU - 3555

http://acm.hdu.edu.cn/showproblem.php?pid=3555 dp[i][0]代表[i+1,n-1]位上没出现过49且第i+1位上的数不是4 dp[i][1]代表[i+1,n-1]位上没出现过49但第i+1位上的数是4 dp[i][2]代表[i+1,n-1]位上已出现过49 #include <bits/stdc++.h>using namespace s

(AtCoder Beginner Contest 333)--- F - Bomb Game 2 --- 题解

F - Bomb Game 2:         题目大意:   思路解析:          这道题一读题面就知道他是个概率dp,假如有 i 个人我们要输出这i个人每个人最后能够留下的概率。         设状态dp[i][j] 表示当前有i个人,目标人物位于这i个人中的第j个位置。如果我们通过dp[i][j]往前推,让dp[1][1]为目标状态,这样一次dp就只能得到一个人的答

hdu 2873 Bomb Game 【博弈-预处理表】

题目传送!!! 题意: n*m的格子内,有些格子里有炸弹,A和B轮流操作,不能操作的人输。操作如下:若位置(p,q)有炸弹 (1)p>1,q>1可以任选u<p,v<q,把炸弹分成两个分别位于(u,q),(p,v)。 (2)p==1,任选v<q,把炸弹移动到(p,v) (3)q==1,任选u<p把炸弹移动到(u,q) (4)另外,如果一个格子有两个炸弹,则两个炸弹抵消掉,或者某则炸弹被移

hdu 3555 Bomb

hdu 3555  Bomb 这个题目是最初级的数位dp题目了 递推的形式:    dp1[ i ] 表示有i个自由位含有49的个数    dp2[ i ] 表示有i个自由位以9开头不含49的个数    dp3[ i ] 表示有i个自由不以9开头且不含49的个数 要注意的是递推计算的是[0 , n-1] 范围内的数,所以n要++,为什么看程序注释 #incl

POI - 压缩炸弹 Zip bomb

错误日志 Zip bomb detected! The file would exceed the max. ratio of compressed file size to the size of the expanded data.This may indicate that the file is used to inflate memory usage and thus could p

【Codeforces Round 363 (Div 2) B】【水题 行列计数】One Bomb 炸弹人爆破游戏

B. One Bomb time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output You are given a description of a depot. It is a rectangula