洛谷 P1028 [NOIP 2001 普及组] 数的计算(动态规划)
题目描述给出正整数 n要求按如下方式构造数列只有一个数 n 的数列是一个合法的数列。在一个合法的数列的末尾加入一个正整数但是这个正整数不能超过该数列最后一项的一半可以得到一个新的合法数列。请你求出一共有多少个合法的数列。两个合法数列 a,b 不同当且仅当两数列长度不同或存在一个正整数 i≤∣a∣使得 a[i]!b[i]。输入格式输入只有一行一个整数表示 n。输出格式输出一行一个整数表示合法的数列个数。输入输出样例输入6输出6说明/提示样例 1 解释满足条件的数列为66,16,26,36,2,16,3,1数据规模与约定对于全部的测试点保证 1≤n≤103我的思路动态规划第一步确定状态。确定状态可以用“最后一步法”就是根据这个问题的最后一步确定状态具体代表什么。然后把大问题转化为子问题就像这道题的大问题“求正整数n一共有多少个合法子序列”我们可以化为很多个子问题从0开始求它一共有多少个合法子序列一直到n。我把题目中的问题确定为状态也就是“一共有多少个合法的数列”。可以创建一个数组a而a[i]的意义是“第i个数所拥有的全部数列”如:a[1]1,a[2]2,a[3]2…。动态规划第二步列出状态转移方程。我们根据子问题确定状态转移方程a[i]a[0]a[1]a[2]…a[i/2]。也可以找规律0—01—12—23—24—45—56—67—68—109—10。我们把每个数所有的数列列出来如666 16 26 2 16 36 3 1。能发现6的数列由0123的最多数列组成。由此可得上面的状态转移方程。动态规划第三步确定边界。这道题的边界可以定为a[0]1或a[0]a[1]1…,根据个人习惯。但是要注意for循环中i和j的值要变化。动态规划第四步计算根据由子问题逐渐合并为大问题过程进行计算。以下是我的代码#includebits/stdc.husingnamespacestd;constintmaxn1e310;inta[maxn];intmain(){intn;cinn;a[0]a[1]1;for(inti2;in;i){for(intj0;ji/2;j){a[i]a[j];}}couta[n];return0;}题目来源洛谷P1028 [NOIP 2001 普及组] 数的计算

相关新闻

嵌入式系统看门狗详解——以 STM32 为例

嵌入式系统看门狗详解——以 STM32 为例

一、什么是看门狗1.1 概念定义看门狗(Watchdog Timer,简称 WDT)是嵌入式系统中的一种硬件定时器模块,它的核心思想非常简单:在一个固定时间内,软件必须"喂狗"(即重新初始化定时器&…

2026/10/11 3:38:44 阅读更多 →
机器人弧焊I-Puls工艺参数设置与焊缝质量提升指南

机器人弧焊I-Puls工艺参数设置与焊缝质量提升指南

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

2026/10/11 3:38:44 阅读更多 →
AS SSD跑分深度解读:测试项原理、操作流程与避坑指南

AS SSD跑分深度解读:测试项原理、操作流程与避坑指南

简介:AS SSD Benchmark是一款专用于固态硬盘性能评测的轻量级系统工具,面向DIY装机用户、硬件评测爱好者以及担心磁盘速度下降的普通用户,帮助大家客观了解SSD的真实读写表现。压缩包整体仅285KB,共包含4个文件,包括ex…

2026/10/11 3:38:44 阅读更多 →

最新新闻

强化学习4:用 Python 实现首次访问蒙特卡洛控制,让智能体学会网格寻路

强化学习4:用 Python 实现首次访问蒙特卡洛控制,让智能体学会网格寻路

本文用一个 44 的 GridWorld,讲清楚蒙特卡洛方法如何从完整回合中估计动作价值,以及 ε-greedy 如何帮助智能体在探索与利用之间做出选择。实验包含 Q 表、训练曲线、策略箭头和最终路径,适合已经了解 Python 循环、字典和函数的读者。1. 从一…

2026/10/11 4:27:13 阅读更多 →
认证模块代码

认证模块代码

认证模块代码阅读地图 1. 请求生命周期图 下面以携带 Token 访问 /api/auth/me 为例。注意:实际执行时,是 AuthController 调用 CurrentUser.get() 领取身份,CurrentUser 不是一个独立的过滤器。 AuthController:业务员 CurrentUser:取件员 数据库 JwtService:制卡验卡…

2026/10/11 4:27:13 阅读更多 →
缺陷管理实战:分类、生命周期、工具、报告与复盘

缺陷管理实战:分类、生命周期、工具、报告与复盘

如果你在软件测试或者研发这条线上待过几年,一定见过这种场面:某测试同学提交了一条缺陷,标题就五个字“登录有问题”,正文没有复现步骤,也没有截图。开发同学打开页面点了几下,回了一句“在我这边正常”&a…

2026/10/11 4:27:13 阅读更多 →
AnyPS5深度解析:PS5兼容层的原理、部署与性能优化

AnyPS5深度解析:PS5兼容层的原理、部署与性能优化

1. 项目画像:AnyPS5到底在解决什么问题1.1 核心场景与技术定位AnyPS5最早吸引我注意的,是它的名字里那个“Any”。当时我手里有一台已经落灰的主机,手头又有一台性能还不错的PC,我想做的是把主机上的游戏从客厅搬到书房的显示器上…

2026/10/11 4:27:12 阅读更多 →
Linux服务器源码部署DeepSeek Harness Web全攻略

Linux服务器源码部署DeepSeek Harness Web全攻略

这套“Linux 服务器源码部署 DeepSeek Harness Web”的流程,我前后在几台不同配置的服务器上折腾过,从最开始的一脸懵,到现在闭着眼睛能把环境搭起来,中间踩过的坑不算少。这篇就把整个部署链路从头到尾捋一遍,从拿到一…

2026/10/11 4:27:12 阅读更多 →
深入理解C++ std::allocator:从原理到自定义内存池分配器

深入理解C++ std::allocator:从原理到自定义内存池分配器

C里有个东西,教材上往往一笔带过,标准库里却到处都是它的身影——std::allocator。很多开发者写了好几年业务代码,可能都没正眼看过它一眼,但一旦涉及高性能组件、内存池、特殊内存管理,或者你想搞明白std::vector底层…

2026/10/11 4:26:12 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →