Kimi    LeetCode 3906. 统计网格路径中好整数的数目 C语言实现
以下是 LeetCode 3906 的 C 语言实现采用数位 DP 思路。由于 C 没有内置的递归记忆化使用静态数组手动实现记忆化搜索。c#include stdio.h#include stdlib.h#include string.h// 全局/静态变量用于 DFSstatic bool key[16];static long long memo[16][10];static char s[17]; // 16位数字 \0static long long dfs(int pos, int last, bool lim) {if (pos 16) {return 1;}// 非受限状态且已计算过直接返回if (!lim memo[pos][last] ! -1) {return memo[pos][last];}long long res 0;// 当前位的下界如果是关键位必须 last否则从 0 开始int start key[pos] ? last : 0;// 当前位的上界如果受限则为 s[pos]否则为 9int end lim ? (s[pos] - 0) : 9;for (int i start; i end; i) {int next_last key[pos] ? i : last;bool next_lim lim (i end);res dfs(pos 1, next_last, next_lim);}// 只有非受限状态才缓存结果if (!lim) {memo[pos][last] res;}return res;}static long long calc(long long x) {if (x 0) {return 0;}// 将 x 补齐为 16 位字符串snprintf(s, sizeof(s), %016lld, x);// 初始化记忆化数组为 -1for (int i 0; i 16; i) {for (int j 0; j 10; j) {memo[i][j] -1;}}return dfs(0, 0, true);}long long countGoodIntegersOnPath(long long l, long long r, char* directions) {// 标记路径上访问的 7 个关键格子memset(key, 0, sizeof(key));int row 0, col 0;key[0] true; // 起点 (0,0)for (int i 0; directions[i] ! \0; i) {if (directions[i] D) {row;} else {col;}key[row * 4 col] true;}return calc(r) - calc(l - 1);}关键思路说明1. 路径预处理directions 恰好包含 3 个 D 和 3 个 R从 (0,0) 出发走 6 步到达 (3,3)。将路径上经过的 7 个格子在 16 位字符串中的位置row * 4 col标记为 key[pos] true。2. 数位 DP将数字补齐为 16 位后逐位枚举。对于每个位置 pos- 如果 key[pos] true路径上的格子当前位必须 ≥ 上一个路径格子的值last同时更新 last。- 如果 key[pos] false非路径上的格子可以填任意数字 0~9last 保持不变。3. 受限状态 lim表示当前位是否被上界 s[pos] 限制。如果受限当前位最大只能填 s[pos]否则可以填到 9。只有非受限状态的结果可以缓存到 memo 数组中。4. 区间转换通过 calc(r) - calc(l - 1) 得到 [l, r] 范围内的答案。时间复杂度 O(16 \times 10 \times 10)空间复杂度 O(16 \times 10)。

相关新闻

部署上线:Docker容器化与云端部署

部署上线:Docker容器化与云端部署

摘要:MCP Server Docker容器化部署教程,涵盖Dockerfile编写、多阶段构建、环境变量注入、健康检查和云端部署(AWS/Aliyun),附docker-compose完整配置。 MCP部署上线 Docker容器化与云端部署 我第一次部署MCP Server到…

2026/10/13 11:39:56 阅读更多 →
串口调试工具SerialPortUtiliti安装包百度网盘

串口调试工具SerialPortUtiliti安装包百度网盘

【超级会员V1】通过百度网盘分享的文件:Serial P… 链接:https://pan.baidu.com/s/1H8b8myp_sx6lfnnLBDAkFA 提取码:094q 复制这段内容打开「百度网盘APP 即可获取」

2026/10/13 2:17:59 阅读更多 →
IINA播放器完整指南:为什么它是macOS视频播放器的终极选择?

IINA播放器完整指南:为什么它是macOS视频播放器的终极选择?

IINA播放器完整指南:为什么它是macOS视频播放器的终极选择? 【免费下载链接】iina The modern video player for macOS. 项目地址: https://gitcode.com/gh_mirrors/iin/iina 如果你用过Mac,多半经历过这样的时刻:辛苦下载…

2026/10/12 0:49:00 阅读更多 →

最新新闻

AI助手会话记录批量导出实战:从API到浏览器脚本的完整方案

AI助手会话记录批量导出实战:从API到浏览器脚本的完整方案

1. 把需求掰开揉碎:你要的批量导出到底是什么时不时就有人来问:能不能把AI助手左侧那一长串会话记录一次性导出?注意,这里的“会话”指的是左边列表里的每一个独立条目,而不是某个会话里的几十轮来回。每条会话都有自己…

2026/10/13 11:39:13 阅读更多 →
OneLive私有化直播系统搭建全攻略:从推流到播放的完整实践

OneLive私有化直播系统搭建全攻略:从推流到播放的完整实践

第一次把 OneLive 这个名字写在架构图上,是在帮一个朋友做线上分享活动的时候。他当时需要的不是某个直播平台的账号,而是一套能装在自有服务器上、由自己完全控制推拉流、录制和权限的直播项目。OneLive 这个名字就这么随手起了:一场直播、一…

2026/10/13 11:39:13 阅读更多 →
Open Code Review:从形式评审到协作基础设施的范式升级

Open Code Review:从形式评审到协作基础设施的范式升级

1. “open-code-review”不是个工具,而是一套被低估的协作范式你有没有遇到过这样的场景:团队里新来一位同事,第一天就提了三份PR,每份都改了二十多个文件,commit message写的是“fix bug”;或者自己花三天…

2026/10/13 11:39:13 阅读更多 →
基于人脸识别的照片视频管理器:C#稳定版64位实现

基于人脸识别的照片视频管理器:C#稳定版64位实现

简介:这是一款用C#编写的本地照片与视频管理工具,面向需要按人物整理个人影像资料的普通用户与开发者。它支持jpg、jpeg、png、bmp等图片格式以及avi、mp4、mpg、mpeg等视频格式,核心能力包括人脸库录入、照片视频人脸自动识别,以…

2026/10/13 11:39:13 阅读更多 →
AI编程智能体分级:决策权归属决定项目成败

AI编程智能体分级:决策权归属决定项目成败

1. 为什么“智能体分级”不是技术炫技,而是项目落地的生死线最近帮某高校实验室做一套教学辅助系统时,团队最初信心满满:用最新开源大模型Agent框架,两周就能跑通自动出题、批改、反馈闭环。结果卡在第三天——学生提交一道开放性…

2026/10/13 11:39:13 阅读更多 →
大模型与电机控制之间:三层分布式架构的工业落地实践

大模型与电机控制之间:三层分布式架构的工业落地实践

1. 从“一句话控制电机”的幻觉说起这两年大模型火得不行,不少做工业自动化的朋友私下问我:既然大模型连代码都能写,能不能让它直接控制电机?把产线上的PLC换掉,用自然语言让机械臂干这干那,听起来实在太有…

2026/10/13 11:38:11 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →