当前位置: 首页 > news >正文

数位dp-Bomb

 

 

难受啊!!越做题是越感觉菜,这个又被几个坑给卡住了(只有我这个学渣才会卡)

 

坑点:1.考虑n是否已包含49,有的话还要再+1.

2, 注意从最高开始考虑时,再判断时要考虑它本身为0的情况,.比如n=5701,在考虑最高位时,其实是在考虑0~5000所能组成的含49的数的个数,这个是包含f[i][2]中的前导0并且千位最高位也可为0

#include<bits/stdc++.h>
using namespace std;
//#define LL long long
typedef __int64 LL;
LL f[25][10];
int n[200];
void init()
{
//    f[1][9]=1;
//    f[1][0]=10;
    memset(f,0,sizeof(f));
    f[0][0]=1;
    for(int i=1; i<=22; i++)
    {
        f[i][1]=f[i-1][1]*10+f[i-1][9];
        f[i][9]=f[i-1][0];
        f[i][0]=f[i-1][0]*10-f[i-1][9];
    }
}
int main()
{
    int t;
    scanf("%d",&t);
    init();
//    for(int i=1;i<=20;i++)
//        printf("%lld\n",f[i][1]+f[i][0]);
    while(t--)
    {
//        string s;
//        cin>>s;
//        for(int i=0; i<s.size(); i++)
//            n[s.size()-i]=s[i]-'0';
        LL a;
        scanf("%I64d",&a);
        int len=0;
        LL ans=0;
        int flag=0;
        a++;
        while(a)
        {
            n[++len]=a%10;
            a/=10;
        }
        n[len+1]=0;
        for(int i=len; i>=1; i--)
        {
            ans+=n[i]*f[i-1][1];
            if(flag)
                ans+=n[i]*f[i-1][0];
            else if(n[i]>4)
                ans+=f[i-1][9];
            if(n[i+1]==4&&n[i]==9)
                flag=1;
        }
        printf("%I64d\n",ans);
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/dongdong25800/p/10779672.html

相关文章:

  • TNW-微信公众号各种消息交互
  • 221 springCloud 学习
  • 2018-2019-2 网络对抗技术 20165324 Exp6:信息收集与漏洞扫描
  • 学号20175313 《数据库MySQL(课下作业,必做)》第十周
  • Oomox:定制和创建你自己的 GTK2、GTK3 主题
  • 图论
  • mysql笔记
  • 云原生的新思考,为什么容器已经无处不在了
  • Spark中利用Scala进行数据清洗(代码)
  • Flask搭建简单的get请求
  • linux 源码安装JAVA jdk
  • Spring事务管理之几种方式实现事务(转)
  • 【转】np.random.random()函数 参数用法以及numpy.random系列函数大全
  • 从零开始手写一个优化版React脚手架
  • JavaWeb学习笔记(十二)--Session案例
  • “Material Design”设计规范在 ComponentOne For WinForm 的全新尝试!
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • canvas 高仿 Apple Watch 表盘
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • eclipse的离线汉化
  • GraphQL学习过程应该是这样的
  • Intervention/image 图片处理扩展包的安装和使用
  • Lucene解析 - 基本概念
  • PAT A1120
  • php的插入排序,通过双层for循环
  • spring security oauth2 password授权模式
  • web标准化(下)
  • 创建一个Struts2项目maven 方式
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 深度学习在携程攻略社区的应用
  • Linux权限管理(week1_day5)--技术流ken
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​马来语翻译中文去哪比较好?
  • ​一些不规范的GTID使用场景
  • # 达梦数据库知识点
  • #include
  • #Linux(Source Insight安装及工程建立)
  • $redis-setphp_redis Set命令,php操作Redis Set函数介绍
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (solr系列:一)使用tomcat部署solr服务
  • (SpringBoot)第七章:SpringBoot日志文件
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)ssm智慧社区管理系统 毕业设计 101635
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (转)ObjectiveC 深浅拷贝学习
  • (转)visual stdio 书签功能介绍
  • (转)母版页和相对路径
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .chm格式文件如何阅读
  • .Net 路由处理厉害了
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器