[HDU3555]Bomb
[HDU3555]Bomb
试题描述
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?
输入
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.
输出
For each test case, output an integer indicating the final points of the power.
输入示例
输出示例
数据规模及约定
见“输入”
题解
裸数位 dp,f[i][j] 表示前 i 位最高位为数字 j 的数中,包含“49”的个数。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath>
#include <stack>
#include <vector>
#include <queue>
#include <cstring>
#include <string>
#include <map>
#include <set>
using namespace std;
#define LL long long LL read() {
LL x = 0, f = 1; char c = getchar();
while(!isdigit(c)){ if(c == '-') f = -1; c = getchar(); }
while(isdigit(c)){ x = x * 10 + c - '0'; c = getchar(); }
return x * f;
} #define maxn 21
LL f[maxn][maxn], ten[maxn]; int num[maxn], cnt;
LL sum(LL x) {
cnt = 0; LL orx = x;
while(x) num[++cnt] = x % 10, x /= 10;
LL sum = 0;
for(int i = cnt; i; i--) {
for(int j = 0; j < num[i]; j++) sum += f[i][j];
if(i < cnt && num[i+1] == 4 && num[i] == 9) {
sum += orx % ten[i-1] + 1; break;
}
}
return sum;
} int main() {
ten[0] = 1;
for(int i = 1; i < maxn; i++) ten[i] = ten[i-1] * 10;
for(int i = 1; i < maxn - 1; i++)
for(int j = 0; j <= 9; j++)
for(int k = 0; k <= 9; k++) {
if(k == 4 && j == 9) f[i+1][k] += ten[i-1];
else f[i+1][k] += f[i][j];
} int T = read();
while(T--) {
LL n = read();
printf("%lld\n", sum(n));
} return 0;
}
打这种题最好写一发暴力。。。
[HDU3555]Bomb的更多相关文章
- HDU3555 Bomb[数位DP]
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
- hdu3555 Bomb (记忆化搜索 数位DP)
http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others) Memory ...
- hdu---(3555)Bomb(数位dp(入门))
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
- HDU3555 Bomb 数位DP第一题
The counter-terrorists found a time bomb in the dust. But this time the terrorists improve on the ti ...
- 【数位dp】hdu3555 Bomb
题意就是找0到n有多少个数中含有49.数据范围接近10^20 DP的状态是2维的dp[len][3]dp[len][0] 代表长度为len不含49的方案数dp[len][1] 代表长度为len不含49 ...
- [暑假集训--数位dp]hdu3555 Bomb
The counter-terrorists found a time bomb in the dust. But this time the terrorists improve on the ti ...
- HDU3555 Bomb —— 数位DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others) M ...
- hdu3555 Bomb(数位dp)
题目传送门 Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total ...
- hdu3555 Bomb (数位dp入门题)
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
随机推荐
- 9月22日下午JavaScript----Document对象
document对象 一.找元素 1.根据id找 示例: <input id = "a" type="button" value="找元素&qu ...
- 移动端图片上传解决方案localResizeIMG先压缩后ajax无刷新上传
现在科技太发达,移动设备像素越来越高,随便一张照片2M+,但是要做移动端图片上传和pc上略有不同,移动端你不能去限制图片大小,让用户先处理图片再上传,这样不现实.所以理解的解决方案就是在上传先进行图片 ...
- Behavior Tree
http://www.craft.ai/blog/bt-101-behavior-trees-grammar-basics/ https://github.com/libgdx/gdx-ai/wiki ...
- SSAO相关资料
http://www.gamedev.net/page/resources/_/technical/graphics-programming-and-theory/a-simple-and-pract ...
- Hibernate整合C3P0实现连接池
Hibernate整合C3P0实现连接池 hibernate中可以使用默认的连接池,无论功能与性能都不如C3PO(网友反映,我没有测试过),C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI ...
- MySQL数据导出与导入
工具 mysql mysqldump 应用举例 导出 导出全库备份到本地的目录 mysqldump -u$USER -p$PASSWD -h127.0.0.1 -P3306 --routines -- ...
- queryString(正则表达式版本)
获取所有query string function queryStringAll(s) { var reg = /(?:^|&)([^&]+)=([^&]+)(?=&| ...
- elasticsearch集群管理工具head插件(转)
elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es 插件安装方法1: 1.elasticsearc ...
- javascript 时间处理
<script language="JavaScript" type="text/JavaScript"> var myDate = new Dat ...
- gvim如何显示html属性代码提示? vim 如何显示 javascript属性及方法提示?
gvim如何显示html属性代码 可以在vim中 显示 html, css, js等的属性/方法 提示: 一是: 在 ~/.vim/after/syntax/ 目录中 安装 css-color.vim ...