Bomb

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)

Total Submission(s): 16713 Accepted Submission(s): 6128

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.

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.

Author

fatboy_cw@WHU

Source

2010 ACM-ICPC Multi-University Training Contest(12)——Host by WHU

/*
数位DP.
f[i][j]表示以j开头的i位数的决策.
倒序存储
最后还要加一位统一开区间处理.
*/
#include<iostream>
#include<cstdio>
#include<cstring>
#define MAXN 25
#define LL long long
using namespace std;
LL f[MAXN][MAXN],ans,n;
int t,l,a[MAXN];
void pre()
{
f[0][0]=1;
for(int i=1;i<=20;i++)//枚举位数.
for(int j=0;j<=9;j++)//枚举这一位数.
for(int k=0;k<=9;k++)//枚举上一位数.
{
if(j==4&&k==9) continue;
f[i][j]+=f[i-1][k];
}
return ;
}
void slove()
{
n++;ans=n;
l=0;memset(a,0,sizeof a);
while(n) a[++l]=n%10,n/=10;
a[l+1]=0;
for(int i=l;i;i--)
{
for(int j=0;j<a[i];j++)
{
if(a[i+1]==4&&j==9) continue;
ans-=f[i][j];
}
if(a[i]==9&&a[i+1]==4) break;
}
cout<<ans<<endl;
return ;
}
int main()
{
pre();scanf("%d",&t);
while(t--) cin>>n,slove();
return 0;
}

最新文章

  1. Android studio
  2. Repeater 根据某一列的值加颜色
  3. POJ1845 Sumdiv(求所有因数和+矩阵快速幂)
  4. CF B. Kolya and Tandem Repeat
  5. solr教程,值得刚接触搜索开发人员一看
  6. One Way Roads(搜索)
  7. UNIX环境高级编程——网络基础概念
  8. Java元注解
  9. 基于Quartz.NET框架的WinForm任务计划管理工具
  10. iOS 之 UITextField
  11. 在ASP.NET 中检测手机浏览器(转)
  12. ubuntu14.04+sublime3+latex配置
  13. java自动化-关键字驱动在junit接口自动化的应用
  14. MongoDB的分片集群搭建
  15. python从零安装
  16. 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)
  17. [git] 文件操作
  18. [Web 前端] td长度固定,内容过长,超过部分用省略号代替
  19. 将jsonModel转化为文件
  20. Java并发(二):Java内存模型

热门文章

  1. Antd中,Form和Select联合使用,导致placeholder不生效分析
  2. java都13了, 8的新特性你还没不会用吗
  3. spark2.0 DataSet操作的一些问题记录
  4. idea内存溢出解决方法
  5. html-proload
  6. 一 ArrayList 及其源码解析
  7. easyui的combobox默认选中第一个选项
  8. 基础网络之EfficientNet
  9. java——double数据精度问题
  10. eclipse新建jsp模版设置