动态规划(算法竞赛、蓝桥杯)--数位DP--Windy树

1、B站视频链接:E37 数位DP Windy数_哔哩哔哩_bilibili

题目链接:[SCOI2009] windy 数 - 洛谷

3d1bd9f5f2eb4254b03b0f2523160679.png

a722bc06faec4eb39459c6798784482f.png

ee583e49c29548829ba068036ba91803.png

e282c54f847846018018d70da421a2ec.png

#include <bits/stdc++.h> 
using namespace std;
const int N = 12;
int a[N];     //把整数的每一位数字抠出来,存入数组 
int f[N][10]; //f[i][j]表示一共有i位,且最高位数字为j的Windy数的个数 void init(){  //预处理Windy数的个数 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++)     //状态:枚举第i位 for(int k=0; k<=9; k++)   //决策:枚举第i-1位 if(abs(k-j)>=2) f[i][j]+=f[i-1][k];    
}
int dp(int x){if(!x) return 0;                //特判,x==0返回0 int cnt = 0; while(x) a[++cnt]=x%10, x/=10;  //把每一位抠出来存入数组int res=0, last=-2;             //last表示上一位数字 for(int i=cnt; i>=1; --i){      //从高位到低位枚举 int now = a[i];               //now表示当前位数字 for(int j=(i==cnt); j<now; ++j)     //最高位从1开始 if(abs(j-last)>=2) res+=f[i][j];  //累加答案 if(abs(now-last)<2) break;  //不满足定义,break last = now;                 //更新last if(i==1) res++;             //特判,走到a1的情况 }for(int i=1; i<cnt; i++)      //答案小于cnt位的 for(int j=1; j<=9; j++) res += f[i][j]; return res; 
}
int main(){init();   //预处理Windy数的个数 int l,r;cin>>l>>r;cout<<dp(r)-dp(l-1);return 0;
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/732285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营第36天—动态规划04 | ● 01背包问题,你该了解这些! ● 01背包问题,你该了解这些! 滚动数组 ● 416. 分割等和子集

01背包 https://programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%E8%83%8C%E5%8C%85-1.html 视频讲解&#xff1a;https://www.bilibili.com/video/BV1cg411g7Y6 常见的背包问题类型&#xff08;大厂面试重点掌握01背包和完全背包即可&#xf…

LeetCode-1944题: 队列中可以看到的人数(原创)

【题目描述】 有 n 个人排成一个队列&#xff0c;从左到右 编号为 0 到 n - 1 。给你以一个整数数组 heights &#xff0c;每个整数 互不相同&#xff0c;heights[i] 表示第 i 个人的高度。一个人能 看到 他右边另一个人的条件是这两人之间的所有人都比他们两人 矮 。更正式的&…

能量不等式证明

波动方程初值问题能量不等式的证明 Gronwall 不等式 若非负函数 G ( τ ) G(\tau) G(τ) 在 [ 0 , T ] [0,T] [0,T] 上连续可微&#xff0c; G ( 0 ) 0 G(0)0 G(0)0&#xff0c;且对 τ ∈ [ 0 , T ] \tau\in[0,T] τ∈[0,T]满足 d G ( τ ) d τ ≤ C G ( τ ) F ( τ …

BJFU|大数据基础考前速记(含考试大纲与复习笔记)

考试大纲与复习笔记在文末 考前速记 2010年前后&#xff0c;大数据、云计算、物联网的快速发展拉开了第三次信息化浪潮的大幕。 信息科技需要解决信息存储、信息处理和信息传输三个核心问题。解决方式是&#xff1a;存储设备容量不断增加、CPU处理能力大幅提升、网络带宽不断…

Flutter图片内存占用过大问题

图片(Image)加载原理&#xff1a; Image &#xff1a; 显示图⽚的Widget&#xff0c;通过ImageState管理ImageProvider的⽣命周期。 ImageProvider&#xff1a; 图⽚的抽象概念。 根据Image创建实例时调用的工厂方法的不同&#xff08;Image.network或者Image.assetImage&#…

mysql根据时间段生成时间

在开发过程中&#xff0c;经常会遇到统计&#xff0c;如果统计的时间段内有间隔&#xff0c;不管是左连接还是右连接都不会有&#xff0c;所以这时候我们需要写个语句能补全这段时间内所有的时间&#xff0c;然后用时间去关联业务查询。 select num : num 1,date_format(addda…

WPF DataGrid常用属性

AlternationCount属性&#xff1a;表示有几行不同的颜色来回替换&#xff0c;如果设置2则表示有两个颜色交替循环 AutoGenerateColumns属性&#xff1a;是否生成列 CanUserAddRows属性&#xff1a;用户是否可以添加行 CanUserDeleteRows属性&#xff1a;用户是否可以删除行 …

【FPGA/IC】CRC电路的Verilog实现

前言 在通信过程中由于存在各种各样的干扰因素&#xff0c;可能会导致发送的信息与接收的信息不一致&#xff0c;比如发送数据为 1010_1010&#xff0c;传输过程中由于某些干扰&#xff0c;导致接收方接收的数据却成了0110_1010。为了保证数据传输的正确性&#xff0c;工程师们…

2023年第三届中国高校大数据挑战赛(第二场)D题思路

赛题D&#xff1a;行业职业技术培训能力评价 中国是制造业大国&#xff0c;产业门类齐全&#xff0c;每年需要培养大量的技能娴熟的技术工人进入工厂。某行业在全国有多所不同类型&#xff08;如国家级、省级等&#xff09;的职业技术培训学校&#xff0c;进行 5 种技能培训。…

禁止使用搜索引擎,你了解吗?

员工A&#xff1a;“我今天想搜索的时候&#xff0c;用不了浏览器了&#xff0c;你能用么&#xff1f;” 员工B&#xff1a;“不知道啊我试一下啊” “也不行” 员工C&#xff1a;“为什么啊&#xff1f;” 针对上述对话&#xff0c;我们不禁思考&#xff1a; 公司为什么禁…

python基础9_序列类型

回顾: 什么是变量?,有什么用? 可以变化的量, 就是个容器,多次变化,方便后续使用, 前面介绍了哪些数据类型? bool, str, int, float 用什么函数查看数据的类型? a "hello" print(type(a)) 到了这一步,,我们认识了哪些数据类型呢? int 整型(整数), float…

office下常见问题总结——(持续更新学习记录中......)

目录 Wordword2019中, 当给选定的汉字设置格式后&#xff0c;其他相同汉字也会自动应用相同的格式?在Word中&#xff0c;当输入数字后加上句点&#xff08;.&#xff09;时会自动被识别为标题,如何关闭功能?如何让当前的word中的样式 ,匹配全局模版中的样式?在word中,为什么…

一、NLP中的文本分类

目录 1.0 文本分类的应用场景 1.1 文本分类流程 ​编辑 1.2 判别式模型 1.3 生成式模型 1.4 评估 1.5 参考文献 1.0 文本分类的应用场景 &#xff08;1&#xff09;情感分析&#xff1a;中性&#xff0c;正向评论&#xff0c;负向评论&#xff0c;黄色言论&#xff0c;暴…

Java基础 - 8 - 算法、正则表达式、异常

一. 算法 什么是算法&#xff1f; 解决某个实际问题的过程和方法 学习算法的技巧&#xff1f; 先搞清楚算法的流程&#xff0c;再直接去推敲如何写算法 1.1 排序算法 1.1.1 冒泡排序 每次从数组中找出最大值放在数组的后面去 public class demo {public static void main(S…

Matlab偏微分方程拟合 | 完整源码 | 视频教程

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法&#xff0c;并提供所有案例完整源码&#xff1b;2.…

call()与apply()的作用与区别

概念 每个函数都包含两个非继承而来的方法&#xff1a;apply()和call()。 call与apply都属于Function.prototype的一个方法&#xff0c;所以每个function实例都有call、apply属性&#xff1b; 作用 call()方法和apply()方法的作用相同&#xff1a;改变this指向。 区别 他们…

力扣hot100题解(python版63-68题)

63、搜索插入位置 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 示例 1: 输入: nums [1,3,5,6], target 5 输…

【npm】前端工程项目配置文件package.json详解

简言 详细介绍了package.json中每个字段的作用。 package.json 本文档将为您介绍 package.json 文件的所有要求。它必须是实际的 JSON&#xff0c;而不仅仅是 JavaScript 对象文字。 如果你要发布你的项目&#xff0c;这是一个特别重要的文件&#xff0c;其中name和version是…

王升:Audio电感对车载功放EMC的影响 | 演讲嘉宾公布

一、智能车载音频 II 专题论坛 智能车载音频 II 专题论坛将于3月28日同期举办&#xff01; 我们正站在一个前所未有的科技革新的交汇点上&#xff0c;重塑我们出行体验的变革正在悄然发生。当人工智能的磅礴力量与车载音频相交融&#xff0c;智慧、便捷与未来的探索之旅正式扬帆…

若依/RuoYi-Vue使用docker-compose部署

系统需求 JDK > 1.8 MySQL > 5.7 Maven > 3.0 Node > 12 Redis > 3 思路 前端服务器 nginx 后端服务器代码打包 java、maven、node 数据库/缓存 mysql、redis 开始 创建目录ruoyi并进入 克隆若依代码 git clone RuoYi-Vue: &#x1f389; 基于Spring…