【算法】数位DP

【题解】数位dp总结 之 从入门到模板

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=;
int n,a[maxn],NUM[maxn];
long long f[maxn];
struct cyc{int num/*数字数*/;long long ans/*1的数量*/;}qp;
cyc dfs(int deep,bool limit)//返回1的个数
{
if((f[deep]!=-&&!limit)||deep==)
{
qp.num=NUM[deep];
qp.ans=f[deep];
return qp;
}
int k=limit?a[deep]:;
int sum=;long long ans=;
for(int i=;i<=k;i++)
{
qp=dfs(deep-,limit&&i==k);
if(i==)ans+=qp.num;
ans+=qp.ans;
sum+=qp.num;
}
if(!NUM[deep]&&!limit)NUM[deep]=sum;
if(f[deep]==-&&!limit)f[deep]=ans;
qp.ans=ans;qp.num=sum;
return qp;
}
int main()
{
scanf("%d",&n);
int k=n;int N=;
while(k>)
{
N++;
a[N]=k%;
k/=;
}
memset(f,-,sizeof(f));
NUM[]=;f[]=;
printf("%lld",dfs(N,).ans);
return ;
}

【51NOD】数字1的数量的更多相关文章

  1. 51NOD 数字1的数量

    题目描述: 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数. 例如:n = 12,包含了5个1.1,10,12共包含3个1,11包含2个1,总共5个1. Input ...

  2. 51nod数字1的数量

    这道题瞎jbyy了很久 方法可能很奇怪... #include<cstdio> #include<cstring> #include<algorithm> #inc ...

  3. 51nod 1042数字0-9的数量

    1042 数字0-9的数量  基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 给出一段区间a-b,统计这个区间内0-9出现的次数. 比如 10-19 ...

  4. 51nod 1042 数字0-9的数量 数位dp

    1042 数字0-9的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 给出一段区间a-b,统计这个区间内0-9出现的次数.   比如 10-1 ...

  5. 51nod 1009 数字1的数量

    1009 数字1的数量   给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数.   例如:n = 12,包含了5个1.1,10,12共包含3个1,11包含2个1,总共5 ...

  6. 51Nod 1009:1009 数字1的数量 (思维)

    1009 数字1的数量  基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的 ...

  7. 51nod 1042 数字0-9的数量

    给出一段区间a-b,统计这个区间内0-9出现的次数.   比如 10-19,1出现11次(10,11,12,13,14,15,16,17,18,19,其中11包括2个1),其余数字各出现1次. Inp ...

  8. 51nod 1009 数字1的数量 数位dp

    1009 数字1的数量 基准时间限制:1 秒 空间限制:131072 KB   给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数.   例如:n = 12,包含了5个1 ...

  9. 51nod 1009:数字1的数量

    1009 数字1的数量 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个 ...

  10. 51nod- 【1042 数字0-9的数量 】

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1042 题目: 1042 数字0-9的数量 基准时间限制:1  ...

随机推荐

  1. catalan卡塔兰数

    令h(0)=1,h(1)=1,卡塔兰数数满足递归式:h(n)= h(0)*h(n-1) + h(1)*h(n-2) + ... + h(n-1)h(0) (其中n>=2),这是n阶递推关系;还可 ...

  2. java实现几种简单的排序算法

    public class SimpleAri { public static void main(String[] args) { int[] t = {11, 21, 22, 1, 6, 10, 3 ...

  3. ACM 第三天

    A - Arpa’s hard exam and Mehrdad’s naive cheat CodeForces - 742A There exists an island called Arpa’ ...

  4. 无法启动此程序,因为计算机中丢失 zlibd.dll【OSG】

    在配置OSG的过程中遇到了这个问题.记录一下. zlibd.dll这个DLL可以在第三方库3rdParty里面找到.找到之后复制到OSG的bin目录下即可.

  5. 个人作业4 alpha阶段 个人总结

    一.个人总结 二.回答问题 三.再提问题 Q1:关于第三章过早优化 过早优化:既然软件是"软"的,那么它就有很大的可塑性,可以不断改进.放眼望去,一个复杂的软件似乎很多的模块都可以 ...

  6. 【Linux】- Ubutnu UFW防火墙的简单设置

    ufw是一个主机端的iptables类防火墙配置工具,比较容易上手.一般桌面应用使用ufw已经可以满足要求了. 安装方法 sudo apt-get install ufw 使用方法 1.启用: sud ...

  7. BZOJ 1797 最小割(最小割割边唯一性判定)

    问题一:是否存在一个最小代价路径切断方案,其中该道路被切断? 问题二:是否对任何一个最小代价路径切断方案,都有该道路被切断? 现在请你回答这两个问题. 最小割唯一性判定 jcvb: 在残余网络上跑ta ...

  8. POJ1474:Video Surveillance——题解

    http://poj.org/problem?id=1474 题目大意:给按照顺时针序的多边形顶点,问其是否有内核. —————————————————————————————— (和上道题目一模一样 ...

  9. BZOJ1597 & 洛谷2900:[USACO2008 MAR]Land Acquisition 土地购买——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=1597 https://www.luogu.org/problemnew/show/P2900 约翰准 ...

  10. BZOJ2821:作诗——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=2821 问题描述 神犇SJY虐完HEOI之后给傻×LYD出了一题: SHY是T国的公主,平时的一大爱好 ...