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

数位dp

lc1012
参数设计(数位DP递归函数 f )
- i :当前处理的数位下标(从0开始,到数字长度 m 结束),控制遍历进度。


- mask :10位二进制数,标记已用数字(第d位为1表示数字d已用),防重复。


- is_limit :布尔值,标记当前数位是否受 n 对应位限制(true则最多填 n 当前位数字,false可填0-9),确保不超n。


- is_num :布尔值,标记是否已组成合法数字(false可跳过当前位,true需枚举有效数字),处理前导零。


- 记忆化 memo[i][mask] :缓存无限制、已组成合法数字时,第i位+已用数字为mask的无重复数个数,减重复计算。

class Solution {
public:
int numDupDigitsAtMostN(int n) {
auto s = to_string(n);
int m = s.length(), memo[m][1 << 10];
memset(memo, -1, sizeof(memo)); // -1 表示没有计算过


function<int(int, int, bool, bool)> f = [&](int i, int mask, bool is_limit, bool is_num) -> int {
if (i == m)
return is_num; // is_num 为 true 表示得到了一个合法数字
if (!is_limit && is_num && memo[i][mask] != -1)
return memo[i][mask];
int res = 0;
if (!is_num) // 可以跳过当前数位
res = f(i + 1, mask, false, false);
int up = is_limit ? s[i] - '0' : 9; // 如果前面填的数字都和 n 的一样,那么这一位至多填数字 s[i](否则就超过 n 啦)
for (int d = 1 - is_num; d <= up; ++d) // 枚举要填入的数字 d
if ((mask >> d & 1) == 0) // d 不在 mask 中
res += f(i + 1, mask | (1 << d), is_limit && d == up, true);
if (!is_limit && is_num)
memo[i][mask] = res; // 记忆化搜索
return res;
};
return n - f(0, 0, true, false);
}
};

lc1147

递归迭代的写

return 2 + longestDecomposition(s.substr(i, n - i * 2));

class Solution {
public:
int longestDecomposition(string s) {
if (s.empty())
return 0;
for (int i = 1, n = s.length(); i <= n / 2; ++i) // 枚举前后缀长度
if (s.substr(0, i) == s.substr(n - i)) // 立刻分割
return 2 + longestDecomposition(s.substr(i, n - i * 2));
return 1; // 无法分割
}
};

http://www.cnnetsun.cn/news/12188.html

相关文章:

  • Wan2.2-T2V-A14B模型在图书馆数字资源导览中的应用探索
  • 10分钟掌握AMD Ryzen处理器深度调试:SMUDebugTool完全指南
  • 深度解析城通网盘直连技术:高效下载的终极方案
  • Venera漫画阅读器:从零开始的终极配置手册
  • 第11.4节 混合储能系统能量管理
  • 实时视频生成革命:LightX2V开源技术栈如何重塑创作生态
  • 【微实验】直方图均衡化:让光影重获新生的魔法,在明暗之间编织细节的诗篇
  • 明日方舟自动化新纪元:MAA如何用智能算法重构游戏体验
  • Wan2.2-T2V-A14B模型能否生成带倒计时功能的活动预告?
  • 当矢量艺术遇见光学魔法:Inkscape如何重新定义科学绘图?
  • 城通网盘直连解析终极指南:告别限速,体验极速下载
  • LX Music Desktop:颠覆传统音乐播放体验的开源神器
  • 终极免费AI音乐分离神器完整使用指南
  • Wan2.2-T2V-A14B在品牌IP形象推广中的系列化内容生产能力
  • 抖音视频解析与无水印下载技术实现指南
  • 15亿参数重构多模态格局:字节跳动Tar-1.5B开源模型的技术突破与行业变革
  • Wan2.2-T2V-A14B能否生成带有弹幕互动预览的社交视频?
  • 专业级AMD调优工具:SMUDebugTool硬件调试完整使用手册
  • Fastboot Enhance:Windows平台Android设备管理的实用解决方案
  • Wan2.2-T2V-A14B模型能否生成包含图表动画的数据视频?
  • 终极KK-HF_Patch完整教程:精通Koikatu游戏优化全流程
  • 移动端PDF预览革命:pdfh5.js带来的丝滑体验
  • 2025效率革命:ERNIE 4.5-VL如何用30亿参数重塑多模态AI产业
  • 终极跨平台漫画阅读器Venera完全指南:打造无缝阅读体验
  • 深蓝词库转换完整使用指南:从安装配置到高级应用
  • QMCDecode终极指南:Mac用户音频解密的完整解决方案
  • Wan2.2-T2V-A14B模型在儿童教育动画生成中的合规性探讨
  • 5分钟学会Beyond Compare密钥生成:简单快速激活终极指南
  • 37、计算机中的熵与算法复杂度解析
  • 猫抓浏览器扩展终极指南:网页媒体资源智能捕获利器