P1028 [NOIP2001 普及组] 数的计算————C++

news2024/11/25 18:26:45

题目

[NOIP2001 普及组] 数的计算

题目描述

给出自然数 n n n,要求按如下方式构造数列:

  1. 只有一个数字 n n n 的数列是一个合法的数列。
  2. 在一个合法的数列的末尾加入一个自然数,但是这个自然数不能超过该数列最后一项的一半,可以得到一个新的合法数列。

请你求出,一共有多少个合法的数列。两个合法数列 a , b a, b a,b 不同当且仅当两数列长度不同或存在一个正整数 i ≤ ∣ a ∣ i \leq |a| ia,使得 a i ≠ b i a_i \neq b_i ai=bi

输入格式

输入只有一行一个整数,表示 n n n

输出格式

输出一行一个整数,表示合法的数列个数。

样例 #1

样例输入 #1

6

样例输出 #1

6

提示

样例 1 解释

满足条件的数列为:

  • 6 6 6
  • 6 , 1 6, 1 6,1
  • 6 , 2 6, 2 6,2
  • 6 , 3 6, 3 6,3
  • 6 , 2 , 1 6, 2, 1 6,2,1
  • 6 , 3 , 1 6, 3, 1 6,3,1

数据规模与约定

对于全部的测试点,保证 1 ≤ n ≤ 1 0 3 1 \leq n \leq 10^3 1n103

说明

本题数据来源是 NOIP 2001 普及组第一题,但是原题的题面描述和数据不符,故对题面进行了修改,使之符合数据。原题面如下,谨供参考:

我们要求找出具有下列性质数的个数(包含输入的正整数 n n n)。

先输入一个正整数 n n n n ≤ 1000 n \le 1000 n1000),然后对此正整数按照如下方法进行处理:

  1. 不作任何处理;
  2. 在它的左边拼接一个正整数,但该正整数不能超过原数,或者是上一个被拼接的数的一半;
  3. 加上数后,继续按此规则进行处理,直到不能再加正整数为止。

感谢 @dbxxx 对本题情况的反馈,原题面的问题见本贴。

解题思路

  • 递推公式。
  • 设定一个数组f[n]表示数字n的答案。
函数答案
f[1]1
f[2]2
f[3]2
f[4]4
f[5]4
f[6]6
f[7]6
f[8]10
f[9]10
f[10]14
  • 所以我们可以得出规律,当n为奇数时,f[n] = f[n - 1];当n为偶数时,f[n] = f[n - 1] + f[n / 2]

Code

#include <iostream>

using namespace std;

int main() {
	int f[10005];
	int t;
	int ans = 0;
	cin >> t;  // 输入数据
	f[1] = 1;
	f[2] = 2;
	for (int i = 3; i <= t; i++) {
		f[i] = (i % 2 == 1) ? f[i - 1] : f[i - 1] + f[i / 2];
	}
	cout << f[t] << endl;
	return 0;
}

运行结果

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

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

相关文章

linux(debian系列)配置seetaface6

seetaface6依赖于opencv&#xff0c;另外我们需要界面&#xff0c;所以也需要Qt&#xff08;你也可以选择其他的&#xff09;。 这里的目标是配置好环境&#xff0c;能够编译并运行seetaface6给的demo。 那个demo中用到了sqlite数据库&#xff0c;所以我们还需要安装sqlite。…

Cosmos 基础(一)

Cosmos 区块链互联网 Cosmos是一个不断扩展的生态系统&#xff0c;由相互连接的应用程序和服务组成&#xff0c;为去中心化的未来而构建。 Cosmos 应用程序和服务使用IBC(the Inter-Blockchain Communication protocol, 区块链间通信协议)连接。这一创新使您能够在主权国家之…

僵尸进程孤儿进程

目录 1. 僵尸进程 2. 孤儿进程 1. 僵尸进程 僵尸状态&#xff1a;一个进程已经退出&#xff0c;但是还不允许被OS释放&#xff0c;处于一个被检测的状态。 僵死状态&#xff08;Z-Zombies&#xff09;是一个比较特殊的状态。当子进程退出并且父进程没有读取到子进程退出的返…

学习记录663@项目管理之项目范围管理

什么是项目范围管理 项目范围管理包括确保项目做且只做所需的全部工作&#xff0c;以成功完成项目的各个过程。它关注的焦点是:什么是包括在项目之内的&#xff0c;什么是不包括在项目之内的&#xff0c;即为项目工作明确划定边界。通俗地讲&#xff0c;项目范围管理就是要做范…

Dubbo框架学习(第二章Dubbo3拥抱云原生)

由于在微服务领域有两大框架统治&#xff0c;一个是springCloud的全家桶&#xff0c;一个是Dubbo。我用Dubbo比较少&#xff0c;所以也是学习状态。Dubbo框架学习&#xff0c;资料来源于cn.dubbo.apache.org。第二章Dubbo3拥抱云原生新一代的 Triple 协议基于 HTTP/2 作为传输层…

计算机网络第五章、第六章

1.传输层定义&#xff1a;为应用层提供通信服务使用网络层的服务传输层的功能&#xff1a;传输层提供进程和进程之间的逻辑通信复用和分用传输层对收到的报文进行差错检测传输层的两种协议传输层的两个协议&#xff1a;1.面向连接的传输控制协议TCP&#xff1a;传送数据之前必须…

人工智能辅助药物发现(1)肿瘤靶点识别

目录基于AI的靶点识别概述肿瘤建模肿瘤转录组转录组异质性单细胞转录组数据分析单细胞表观肿瘤模型肿瘤中的表观遗传模型基于甲基化测序技术的肿瘤表观遗传模型基于染色质可及性的肿瘤表观遗传模型多模态肿瘤建模靶点识别基于单细胞RNA的靶点发现基于表观的靶点发现基于多组学的…

点击化学交联剂N3-SS-N3,叠氮-二硫键-叠氮简介,CAS:352305-38-5

英文名称&#xff1a;Azidoethyl-SS-ethylazide N3-SS-N3 N3-S-S-N3 化学式&#xff1a;C4H8N6S2 分子量&#xff1a;204.3 CAS&#xff1a;352305-38-5 存储条件&#xff1a;-20C&#xff0c;避光&#xff0c;避湿 用 途&#xff1a;仅供科研实验使用&#xff0c;不用于…

《Buildozer打包实战指南》第四节 正式打包一个apk文件

目录 4.1 了解buildozer.spec配置文件中的常用参数 4.2 修改配置文件打包apk 在上一节内容中&#xff0c;我们配置好了打包环境&#xff0c;还顺带成功打包出了一个apk文件&#xff08;读者可以把这个apk安装到手机上运行&#xff09;。不过在打包这个apk前&#xff0c;我们没…

Unity学习笔记--如何在Unity运行cmd?并且在Unity中利用cmd操作svn(例如生成svn--diff文件)

目录前言需求拆分解决方案实操前言 最近工作有一个需求&#xff0c;简单来说是在 Unity 里面动态获取 SVN diff 的数据&#xff0c;并且针对这些 diff 文件做对应操作 需求拆分 我们首先拆分下需求 Unity里面获取 SVN 的 diff 文件针对生成的 diff 文件做解析&#xff0c;找…

Qt 视频播放

一、简介Qt对音视频的播放和控制&#xff0c;相机拍照&#xff0c;收音机等多媒体应用提供了强大的支持。Qt5使用了全新的Qt Multimedia模块来实现多媒体应用&#xff0c;而原来Qt4中用于实现多媒体功能的Phonon模块已经被移除。新的Qt Multimedia模块提供了丰富的接口&#xf…

【从零开始学习深度学习】50.Pytorch_NLP项目实战:卷积神经网络textCNN在文本情感分类的运用

在之前介绍的“卷积神经网络”中我们探究了如何使用二维卷积神经网络来处理二维图像数据。在语言模型和文本分类任务中&#xff0c;我们将文本数据看作是只有一个维度的时间序列&#xff0c;并很自然地使用循环神经网络来表征这样的数据。其实&#xff0c;我们也可以将文本当作…

安装 MySQL

1.下载安装文件 访问MySQL官网下载安装文件。 如下图所示&#xff0c;点击页面中的“DOWNLOAD”按钮。 点击下载之后自动进行下载。下载到本地的文件名称为&#xff1a;mysql-8.0.31-winx64.zip 2.解压安装文件 将压缩文件解压到你安装的目录&#xff0c;比如&#xff1a;F:…

数据结构与算法笔记

0 核心框架汇总 框架思维 数据结构的存储方式只有两种&#xff1a;数组&#xff08;顺序存储&#xff09;和链表&#xff08;链式存储&#xff09; 算法 数学中的算法重在推导&#xff0c;计算机中的算法重在穷举 计算机算法的本质特点&#xff1a; 穷举 穷举有两个关键难点…

Linux环境 java应用问题排查

0&#xff09;查看CPU占用高的进程PID top -d 1 或 top -H 注&#xff1a; top -d 1 中的 1 是数字&#xff1a;1&#xff0c;不是字母 &#xff1a;l 。 1&#xff09;查看内存使用情况&#xff08;memory-info.log为具体文件路径&#xff09; jmap -heap PID > memory-i…

某程序员跳槽涨薪50%!网友:不合理~

在IT届&#xff0c;有个传闻&#xff0c;跳槽就是程序猿涨工资最好的方式。大家认为程序员跳槽要求涨薪50%合理吗&#xff1f;有人说&#xff1a;凭本事涨的为啥不合理&#xff01;01程序员跳槽要求涨薪50%过分吗&#xff1f;在知乎上看到这样一个帖子&#xff0c;有人提问“程…

CANoe 15版本中CAPL代码自动补全功能的小Bug

最近在使用CANoe 15版本的软件编写CAPL脚本时,遇到了一些小的困扰,记录下来分享给大家! 当我在capl函数中要传入两个参数时,除了逗号隔开两个参数外,还希望有一个空格能进一步拉开两个参数的距离,增加代码的可读性 但是,传入第一个参数后,输入逗号,此时capl的自动补…

IP 网络主动监测系统 Renix Active

一、IT网络运维面临的挑战​ 1.网络性能可视化​ • 与公有云和SaaS平台连接的可靠性​ • 广域网线路性能​ • 互联网专线性能​ 2.诊断工具​ • 现场无IT工程师覆盖​ • 诊断的人力费用​ • 网络与应用系统的纠结​ 3.用户体验​ • Web应用的访问质量​ • 语…

C++设计模式(2)——工厂方法模式

亦称&#xff1a; 虚拟构造函数、Virtual Constructor、Factory Method 意图 工厂方法模式是一种创建型设计模式&#xff0c; 其在父类中提供一个创建对象的方法&#xff0c; 允许子类决定实例化对象的类型。 问题 假设你正在开发一款物流管理应用。 最初版本只能处理卡车…

单目标应用:蜣螂优化算法DBO与麻雀搜索算法SSA求解无人机三维航迹规划(提供Matlab代码)

一、无人机三维航迹规划 三维航迹规划是无人机在执行任务过程中的非常关键的环节&#xff0c;三维航迹规划的主要目的是在满足任务需求和自主飞行约束的基础上&#xff0c;计算出发点和目标点之间的最佳航路。 1.1路径最短约束 无人机航迹规划的首要目标是寻找起飞点和目标点…