当前位置: 首页 > news >正文

数位dp-acwing

题目:Windy数

1083. Windy数 - AcWing题库

分析

不能有前导0,初始化的时候需要有前导0,因为除了最高位数其他位数可以。

windy : 2 5 1 类似这样的数 第二位与第一位相差3 >= 2

分类讨论 :

1. 位数跟 n 同位数 的 

二叉树: 左子树情况, 右子树情况(看是否能进入,就是abs(x-last) >= 2才能进,不能就break)

2. 位数< n 数字的位数的

遍历一遍,位数 + 最高位1-9 

代码

#include<bits/stdc++.h>
using namespace std;const int N = 15;
int f[N][N];void init() {// 只有一位 最高位自身1个for(int i = 0; i <= 9; i ++) f[1][i] = 1;// 位数枚举 2e9  十位数字for(int i = 2; i <= 10; i ++) { // 位数for(int j = 0; j <= 9; j ++) { //最高位, 初始化需要前导0for(int k = 0; k <= 9; k ++) {if(abs(j-k)>=2) f[i][j] += f[i-1][k];}} }}int dp(int n) {// 特判n == 0if(n == 0) return 0; // 当n == 0时,第二个循环会死循环int res = 0, last = -1;vector<int> nums;while(n) nums.push_back(n%10), n/=10;// nums.size() 位数的for(int i = nums.size()-1; i >= 0; i --) {int x = nums[i];// 最高位 从1(不能前导0) 开始枚举(i==nums.size()-1);// 左子树for(int j = (i==nums.size()-1); j < x; j ++) {if(abs(j-last)>=2) res += f[i+1][j];}// 右子树if(abs(x-last)<2) break; last = x;// 特殊情况 全枚举(本身)if(!i) res ++; }// < nums.size() 位数的 0 - nums.size()-2  但是向右偏移,位数来算,原本是下标for(int i = 1; i <= nums.size()-1; i ++) {for(int j = 1; j <= 9; j ++) { // 不能有前导0res += f[i][j];}}return res;
}int main() {init();int l, r;cin >> l >> r;cout << dp(r) - dp(l-1) << endl;return 0;
}

http://www.lryc.cn/news/510939.html

相关文章:

  • 智慧园区小程序开发制作功能介绍
  • STM32高级 物联网之Wi-Fi通讯
  • LLM预训练recipe — 摘要版
  • 波动理论、传输线和S参数网络
  • nginx-1.23.2版本RPM包发布
  • 如何用WPS AI提高工作效率
  • LabVIEW应用在工业车间
  • Elasticsearch:normalizer
  • 动态规划子序列问题系列一>等差序列划分II
  • 48页PPT|2024智慧仓储解决方案解读
  • 低代码开源项目Joget的研究——Joget8社区版安装部署
  • upload-labs关卡记录15
  • 1.使用 Couchbase 数仓和 Temporal(一个分布式任务调度和编排框架)实现每 5 分钟的增量任务
  • matrix-breakout-2-morpheus
  • 农历节日倒计时:基于Python的公历与农历日期转换及节日查询小程序
  • 【RabbitMQ的死信队列】
  • 掌握软件工程基础:知识点全面解析【chap02】
  • 公路边坡安全监测中智能化+定制化+全面守护的应用方案
  • 闲谭Scala(3)--使用IDEA开发Scala
  • Go语言反射从入门到进阶
  • 【基于rust-wasm的前端页面转pdf组件和示例】
  • ARM64 Windows 10 IoT工控主板运行x86程序效率测试
  • 开放世界目标检测 Grounding DINO
  • easegen将教材批量生成可控ppt课件方案设计
  • 2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36)
  • 【虚拟机网络拓扑记录】
  • 【单片机通讯协议】—— 常用的UART/I2C/SPI等通讯协议的基本原理与时序分析
  • Vue3 核心语法
  • LLaMA-Factory GLM4-9B-CHAT LoRA 指令微调实战
  • GTM023 W.H.Greub线性代数经典教材:Linear Algebra