标题效果:

要了解1至n如何号码之间有许多含有13,并13可分

记忆化搜索:

dp[pos][pre][mod][statu],pos位数,pre前一位,mod余数,statu状态

有2个状态:含13,不含13

<span style="font-size:18px;"><strong>#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
#include<queue>
#include<deque>
#include<stack>
#include<map>
#include<set>
#include<cmath>
#include<cstdlib>
#include<cctype>
#define inf 0x3f3f3f3f
#define maxn 10000
typedef long long LL;
using namespace std;
int dp[15][15][15][2];
int n,pos,num[11];
int dfs(int pos,int s,int pre,int z,int e)
{
if(pos==-1) return s==1&&!z; //含13而且能被13整除
if(!e&&dp[pos][pre][z][s]!=-1) return dp[pos][pre][z][s];
int end=e?num[pos]:9;
int sum=0;
for(int i=0;i<=end;i++){
int mod=(z*10+i)%13;
if(pre==1&&i==3) sum+=dfs(pos-1,1,i,mod,e&&i==end);
else sum+=dfs(pos-1,s,i,mod,e&&i==end);
}
return e?sum:dp[pos][pre][z][s]=sum;
} void Init(int x)
{
pos=0;
while(x){
num[pos++]=x%10;
x/=10;
}
memset(dp,-1,sizeof dp);
}
int cal(int x)
{
Init(x);
return dfs(pos-1,0,0,0,1);
}
int main()
{
while(scanf("%d",&n)!=EOF){
printf("%d\n",cal(n));
}
return 0;
}</strong></span>

版权声明:本文博主原创文章,博客,未经同意不得转载。

HDU——B-number(数字DP)的更多相关文章

  1. HDU 4055 Number String dp

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4055 Number String Time Limit: 10000/5000 MS (Java/O ...

  2. HDU 4055 Number String(DP计数)

    题意: 给你一个含n个字符的字符串,字符为'D'时表示小于号,字符为“I”时表示大于号,字符为“?”时表示大小于都可以.比如排列 {3, 1, 2, 7, 4, 6, 5} 表示为字符串 DIIDID ...

  3. HDU - 4734 F(x) (2013成都网络游戏,数字DP)

    意甲冠军:求0-B见面<=F[A]所有可能的 思维:数字DP,内存搜索 #include <iostream> #include <cstring> #include & ...

  4. HDU 1711 Number Sequence(数列)

    HDU 1711 Number Sequence(数列) Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...

  5. hdu 2296 aC自动机+dp(得到价值最大的字符串)

    Ring Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  6. HDU 4054 Number String

    HDU 4054 Number String 思路: 状态:dp[i][j]表示以j结尾i的排列 状态转移: 如果s[i - 1]是' I ',那么dp[i][j] = dp[i-1][j-1] + ...

  7. HDOJ(HDU).1058 Humble Numbers (DP)

    HDOJ(HDU).1058 Humble Numbers (DP) 点我挑战题目 题意分析 水 代码总览 /* Title:HDOJ.1058 Author:pengwill Date:2017-2 ...

  8. HDOJ(HDU).1003 Max Sum (DP)

    HDOJ(HDU).1003 Max Sum (DP) 点我挑战题目 算法学习-–动态规划初探 题意分析 给出一段数字序列,求出最大连续子段和.典型的动态规划问题. 用数组a表示存储的数字序列,sum ...

  9. Bomb HDU - 3555 (数位DP)

    Bomb HDU - 3555 (数位DP) The counter-terrorists found a time bomb in the dust. But this time the terro ...

随机推荐

  1. 原创游戏,金庸群侠传X 0.5公布

    首先说一下背景,我个人从小特别爱玩游戏,对小时候一款游戏<金庸群侠传>DOS版更是情有独钟,自己工作以后,利用业余时间自己整了一个原创的改编版丢网上(找图片.音乐.写剧情更是虐心之极,耗时 ...

  2. Android Volley 之自定义Request

    转载标明出处:http://blog.csdn.net/lmj623565791/article/details/24589837 今天群里一哥们需要自定义Volley的Request的例子,于是产生 ...

  3. JSP+Ajax站点开发小知识

    一.JSP基础 1.<select  name="love"  size="3">当中的size属性指定了列表框显示选项的条数.假设全部选项多于这个 ...

  4. 超赞的.NET办公软件库

    之前做项目无意中搜到这个站点,一開始以为是国外大牛们的杰作,然后看到联系地址中竟然是四川成都,喔...咱们中国人跟老美.印度人比起来也非常厉害啊. 这个站点一次性提供了word.excel.ppt.p ...

  5. Linux高性能server规划——多进程编程

    多进程编程 多进程编程包含例如以下内容: 复制进程影映像的fork系统调用和替换进程映像的exec系列系统调用. 僵尸进程以及怎样避免僵尸进程 进程间通信(Inter-Process Communic ...

  6. JAVA IP地址转成长整型方法

    JAVA IP地址转成长整型方法 代码例如以下: /** * IP转成整型 * @param ip * @return */ public static Long ip2int(String ip) ...

  7. Linux学习笔记——举例说,makefile 多个文件

    0.前言     从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile,假设自己动手写一个makefile总认为非常吃力. 所以特意 ...

  8. IMP-00013 目前只有 DBA 其他导入能力 DBA 导出的文件

    --实例演示 ---system用户导出 C:\Users\ZML>exp system/zml file='D:\zml.dmp' log = 'D:\zml.log' tables = (z ...

  9. sails 相关文章

    Node 框架之sails   http://cnodejs.org/topic/555c3c82e684c4c8088a0ca1

  10. UVA - 12338 Anti-Rhyme Pairs (哈希)

    Description D Anti-Rhyme Pairs Input: Standard Input Output: Standard Output Often two words that rh ...