HODJ3555 Bomb【数位dp】
2015-08-03 09:49
309 查看
Bomb
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 10459 Accepted Submission(s): 3684
[align=left]Problem Description[/align]
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.
Sample Input
3
1
50
500
Sample Output
0
1
15
HintFrom 1 to 500, the numbers that include the sub-sequence "49" are "49","149","249","349","449","490","491","492","493","494","495","496","497","498","499",
so the answer is 15.题意求1-n中包含49的个数
#include<cstdio> #include<cstdlib> #include<cstring> using namespace std; int digital[25]; long long dp[25][3]; void dpdabiao() { int i,j; dp[0][0]=1; for(i=1;i<=23;++i) { dp[i][0]=dp[i-1][0]*10-dp[i-1][1];//不含49的个数 dp[i][1]=dp[i-1][0];//最高位为9的个数 dp[i][2]=dp[i-1][2]*10+dp[i-1][1];//含有49的个数 } } int main() { dpdabiao(); int i,j,t; long long n; scanf("%d",&t); while(t--) { scanf("%lld",&n); int l=1; memset(digital,0,sizeof(digital)); while(n) { digital[l++]=n%10; n/=10; } bool sign=false; long long count=0; for(i=l-1;i>=1;--i) { count+=dp[i-1][2]*digital[i]; if(sign) { count+=dp[i-1][0]*digital[i]; } else { if(digital[i]>4) count+=dp[i-1][1]; if(digital[i+1]==4&&digital[i]==9)sign=true; } }if(sign)count++; printf("%lld\n",count); } return 0; }
相关文章推荐
- windows API获取物理内存大于4G的方法
- 南邮 OJ 1003 斐波那契数列
- Windows 下安裝 OpenCC
- 日经春秋 20150803
- HDU 1796 容斥原理
- rouser 移动脚本
- 服务器的响应数据的类型
- Mahout推荐算法API详解(实用)
- getaddrinfo函数使用
- 天声人語 20150803
- 二叉树遍历之(中序+先序,中序+后序)
- 协定类型不具有 ServiceContractAttribute 特性
- hadoop深入了解(一)
- HDU 2602 Bone Collector(01背包)
- 枚举的简单使用
- Bestcoders 回文串 Manacher 算法
- 《微软云计算Microsoft Azure部署与管理指南》即将上市!!!
- 《微软云计算Microsoft Azure部署与管理指南》即将上市!!!
- C语言文件操作函数大全(超详细)
- app 被拒,申诉 用中文-----OK!