[Hdu3652]B-number(数位DP)

news/2024/7/8 12:46:36

Description

题目大意:求小于n是13的倍数且含有'13'的数的个数。

(1 <= n <= 1000000000)

Solution

数位DP,题目需要包含13,且被13整除,所以状态应该多2个,

\(F[i][j][k]\)表示位数为i,余数为j,包含13状态为k的方案数

其中k(0,1,2),2表示已经包含13,1表示上一个为1,否则为0

记忆化打法

Tips:

  1. 数组k维要开到3
  2. DP数组只算一次,只需开始初始化一次
  3. 计算转移的k时的顺序

Code

#include <cstdio>
#include <cstring>

int n,d[15],f[15][15][3];

int dfs(int p,int mo,int exi,int lim){
    int &tmp=f[p][mo][exi],r=0;
    if(!p) return exi==2&&!mo;
    if(!lim&&tmp!=-1) return tmp;   
    
    int mx=lim?d[p]:9;
    for(int i=0;i<=mx;++i){
        int t=0;
        if(exi==2) t=2;//必须先判,否则错解
        else if(exi==1&&i==3) t=2;
        else if(i==1) t=1;
        r+=dfs(p-1,(mo*10+i)%13,t,lim&&(i==mx));
    }
    return lim?r:tmp=r;
}

int main(){
    memset(f,-1,sizeof(f));
    while(~scanf("%d",&n)){
        int len=0;
        while(n){
            d[++len]=n%10;
            n/=10;
        }
        printf("%d\n",dfs(len,0,0,1));
    }
    return 0; 
} 

转载于:https://www.cnblogs.com/void-f/p/8087694.html


http://www.niftyadmin.cn/n/710094.html

相关文章

alpha版、beta版、rc版的意思

2019独角兽企业重金招聘Python工程师标准>>> alpha版、beta版、rc版的意思 - a3015440的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/a3015440/article/details/6178568 很多软件在正式发布前都会发布一些预览版或者测试版&#xff0c;一般都叫“beta版”或者 …

C语言编译器不能帮你完成这项检查

C语言编译器不能帮你完成这项检查 工作中同事分享的一个小问题&#xff0c;特此记录以下。C语言编译器仅检查声明而不检查定义。C语言编译器只能检查代码中引用的其他函数是否存在声明&#xff0c;只有在链接时才会去找到真正的函数定义即链接地址。出现问题&#xff1a;main.c…

设计模式之结构模式

2019独角兽企业重金招聘Python工程师标准>>> 设计模式之结构模式 一、概述 1.1 简述 告别面向过程&#xff1a; 从汇编到C&#xff0c;由于机器的执行都是通过有顺序的&#xff0c;我们的编程都是面向过程&#xff0c;可以极大的提高系统资源的利用率。当越来越多的…

WPF's Style BasedOn

原文:WPFs Style BasedOn1 <Style x:Key"BasedStyle" BasedOn"{x:Null}" TargetType"{x:Type Control}"> 2 <Setter Property"FontFamily" Value"Microsoft YaHei" /> 3 <Setter Property"Font…

redis服务器及采集端设置

redis&#xff08;logstash&#xff09;.conf内容 #服务端配置,logstash抓取redis数据&#xff0c;配置名自取例一 #从redis读数据input {redis {host > "127.0.0.1"port > 6379type > "redis-input"dat…

7.配置zabbix报警

1.配置报警媒介&#xff1a;&#xff08;1&#xff09;点击administration下面的media types&#xff08;2&#xff09;点击右上角的create media type邮件报警我们使用centos的sendmail短信报警我们使用云片网的短信通道报警脚本的存放位置我们可以通过查看zabbix_server.conf…

时间服务器

方法1&#xff1a;与一个已知的时间服务器同步ntpdate time.nist.gov其中 time.nist.gov 是一个时间服务器.删除本地时间并设置时区为上海rm -rf /etc/localtimeln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime方法2&#xff1a;linux自动同步时间vi /etc/crontab加上…

【Spring】Spring学习笔记-01-入门级实例

听说当前Spring框架很流行&#xff0c;我也准备好好学学Spring开发&#xff0c;并将学习的过程和大家分享&#xff0c;希望能对志同道合的同学有所帮助。 以下是我学习Spring的第一个样例。1.Spring开发环境的搭建 我用的开发工具是MyEclipse 10&#xff0c;用maven管理jar包。…