Bomb HDU - 3555 数位dp
Code:
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<iostream>
using namespace std;
#define ll long long
#define N 20
ll f[N][4], str;
int arr[N],n;
void get_table(){
f[0][0]=1;
for(int i=1;i<N;++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];
}
}
ll solve(){
ll ans=0;
bool flag=false;
for(int i=n;i>=1;--i){
ans+=f[i-1][2]*arr[i];
if(flag) ans+=f[i-1][0]*arr[i];
if(arr[i]>4 && !flag) ans+=f[i-1][1];
if(arr[i+1]==4&&arr[i]==9) flag=true;
}
return ans;
}
int main(){
//freopen("input.in","r",stdin);
get_table();
int T;
scanf("%d",&T);
while(T--){
scanf("%I64d",&str);
memset(arr,0,sizeof(arr));
str++,n=0;
while(str){
arr[++n]=str%10;
str/=10;
}
printf("%I64d\n",solve());
}
return 0;
}
Bomb HDU - 3555 数位dp的更多相关文章
- HDU 3555 数位dp
Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submi ...
- HDU 3555 数位dp入门
开始想用dp[i][j]来记录第i位j开头含有49的数的个数 但是init后并不知道如何进行cal 想了想可以用不要62的思想 当作不要49来做 然后减一下 就好 看网上的代码 不要62和这道题用的d ...
- hdu 3555数位dp基础入门题
#include<stdio.h> #define N 20 long long dp[N][3]; void init(){ long long i; dp[0][0]=1; for ...
- Bomb HDU - 3555 (数位DP)
Bomb HDU - 3555 (数位DP) The counter-terrorists found a time bomb in the dust. But this time the terro ...
- Bomb HDU - 3555
Bomb HDU - 3555 求1~n中含有49数的个数 #include<bits/stdc++.h> #define LL long long using namespace std ...
- hdu 4507 数位dp(求和,求平方和)
http://acm.hdu.edu.cn/showproblem.php?pid=4507 Problem Description 单身! 依旧单身! 吉哥依旧单身! DS级码农吉哥依旧单身! 所以 ...
- hdu 4352 数位dp + 状态压缩
XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- Bomb HDU 3555 dp状态转移
题目:http://acm.hdu.edu.cn/showproblem.php?pid=3555 题意: 给出一个正整数N,求出1~N中含有数字“49”的数的个数 思路: 采用数位dp的状态转移方程 ...
- 2017中国大学生程序设计竞赛 - 网络选拔赛 HDU 6156 数位DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6156 题意:如题. 解法:数位DP,暴力枚举进制之后,就转化成了求L,R区间的回文数的个数,这个直接做 ...
随机推荐
- pgsql数据库备份还原记
今天又搞了一个pgsql 的备份还原,差一点没有成功,以前总是想当然的用,没认真想背后的东西,也没对过程中的疑问做记录,所以后面也没什么印象,常见常新,这次既然又遇到就总结一下. 之前操作pgsql数 ...
- FriendlyARM交叉工具链以及编译第一个arm9应用
不记录什么都会忘光!!!这两天又要用到开发板来做项目,可是好久没有碰了,最近一直在搞上层的东东,对rails和前端感兴趣,我这是不要毕业的节奏了吗?好吧,既然什么都忘光掉了,那就干脆来个痛快,重新装机 ...
- [LeetCode] Longest Substring Without Repeating Characters 最长无重复字符的子串 C++实现java实现
最长无重复字符的子串 Given a string, find the length of the longest substring without repeating characters. Ex ...
- ECharts 在winform中使用(访问JS)
ECharts 是百度的一个开源chart 数据统计库,采用html5 + js 编程方式. 有比较好的动态效果,功能很强大.能做出酷弦的效果. ECharts 一般用于web 开发.但winform ...
- setUserVisibleHint的使用.执行顺序和viewPager.setOffscreenPageLimit(0)不管用还是默认会加载第二个fragment
处理问题一:viewPager.setOffscreenPageLimit(0)不管用还是默认会加载第二个fragment的原因(源码解读); 处理问题二:setUserVisibleHint的使用场 ...
- SQL使用技巧-批量删除-批量更新-bcp导出-跨服务器sql
1.循环删除数据 while @@rowcount>0 begin delete top (1000) from T where OperateTime >=2014 ...
- eval-Evaluation
eval is a function which evaluates a string as though it were an expression and returns a result; in ...
- Vim常用命令及配置方案
Vim常用命令及配置方案 几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用v ...
- Mojo C++ Bindings API
This document is a subset of the Mojo documentation. Contents Overview Getting Started Interfaces Ba ...
- ES 新增字符串方法
话不多说,直接开鲁 1. startsWith() 作用: 检测字符串以什么开头 实例: let str = "www.qjzzj.top"; console.log(str.st ...