首页 > 其他分享 >数位DP

数位DP

时间:2022-09-23 21:36:12浏览次数:76  
标签:nums int long ans DP 数位

模板题:1082. 数字游戏
题目描述
求整数区间 [L,R][L,R] 内, 不降数 的个数

不降数:数位从高到低呈非下降关系(【例】:123,446)

image
image

代码

#include <bits/stdc++.h>
using namespace std;

typedef long long LL;
#define N 15
int f[N][N];//f[i][j]表示i位数且最高位(最左端为最高位)为j的不降序的方案数
void init(){
   for(int i=0;i<=9;i++) f[1][i]=1;

   for(int i=2;i<N;i++)
       for(int j=0;j<=9;j++)
           for(int k=j;k<=9;k++){
              f[i][j]+=f[i-1][k];
            //   cout<<i<<" "<<j<<" "<<f[i][j]<<endl;
           } 
}
int dp(int n){
    if(n==0) return 1;
    vector<int> nums;
    while(n) nums.push_back(n%10),n/=10;
    // cout<<n<<endl;
    // cout<<nums[0]<<endl;
    int ans=0;
    int last=0;
    for (int i=nums.size()-1; i>=0; i--){
        int x=nums[i];
        for(int j=last;j<x;j++)
           ans+=f[i+1][j];
        if(last>x) break;
        last=x;
         if(!i) ans++;//全部枚举到最低位的右分支。
    }
    return ans;
}

signed main()
{
    init();
    int n,m;
     while(cin>>n>>m)
    //  cout<<n<<m<<" "<<dp(n-1)<<endl;
      printf("%d\n",dp(m)-dp(n-1));
    return 0;
}

标签:nums,int,long,ans,DP,数位
From: https://www.cnblogs.com/kingwz/p/16724419.html

相关文章

  • 做题记录整理dp11 P4158 [SCOI2009]粉刷匠(2022/9/23)
    P4158[SCOI2009]粉刷匠事实上前半个小时我甚至没想用dp做。。。感觉这道题难度标高了(跟那个想让我测出题人的码的题相比)首先可以发现每一行之间都是独立的,所以先考虑把......
  • 做题记录整理dp9 P1758 [NOI2009] 管道取珠(2022/9/23)
    P1758[NOI2009]管道取珠这道题的难点就在于赋予ai的平方和一个具体的含义,我们可以想到(其实要不是上课听了根本想不到)ai的平方和其实就是两个管道取珠游戏一起玩,然后取......
  • 做题记录整理dp810 P2254 [NOI2005] 瑰丽华尔兹(2022/9/23)
    P2254[NOI2005]瑰丽华尔兹题解这题的难点在与dp的递推方程的书写如果写对了递推方程,想到单调队列优化是很自然的(然而我想到了不会打)还有递推方程的具体代码实现也挺......
  • 做题记录整理dp8 P5665 [CSP-S2019] 划分(2022/9/23)
    P5665[CSP-S2019]划分这题其实并不是题单的第八题,但我现在一做完题目马上就想来(测出题人的码)整理题目因为这题是真的恶心首先朴素的n三次方dp,枚举上一个端点,以及上上......
  • 【线性dp】 [SCOI2009]粉刷匠
    点个关注点个赞吧一道比较简单的线性dp题目前置知识:会手推一些简单的状态转移方程、较为熟练地掌握背包问题模型[SCOI2009]粉刷匠题目描述windy有\(N\)条木......
  • 【源码笔记】ThreadPoolExecutor#addWorker
    /***Checksifanewworkercanbeaddedwithrespecttocurrent*poolstateandthegivenbound(eithercoreormaximum).Ifso,*theworkercountisa......
  • 关于dp
    线型模型(LIS) 1//线性dp模板顺推2f[1]=1;//恒成立3for(inti=2;i<=n;i++)//从到第2个数开始4{5f[i]=0;//每次重新开始赋初值......
  • 云主机搭建WordPress个人博客
    安装宝塔控制面板宝塔面板是一个简单、好用的面板,它的功能就是将LNMP和服务器的各种管理集成到一个可视化的WEB环境来管理,通过面板,我们普通人不需要掌握具体的技术,只需要......
  • kuangbin专题12 基础DP
     LongestOrderedSubsequence题意:有n个数,在保证原有顺序不变的前提下取出尽可能多的数,使得形成的新序列严格递增。输出取出的数个数。     题解:有两......
  • WPF播放音频使用的SoundPlayer和MediaPlayer
    WPF中,最简单最容易播放音频的方式是使用SoundPlayer类。它是.NETFramework2.0的一部分,是对Win32PlaySoundAPI的封装。         它具有以下限制:1)仅支持.wav......