P1028 [NOIP2001 普及组] 数的计算

P1028 [NOIP2001 普及组] 数的计算

题目描述

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

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

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

详见题目[P1028 NOIP2001 普及组] 数的计算 - 洛谷 | 计算机科学教育新生态

输入格式

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

输出格式

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

输入输出样例

输入 #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≤10^3$。

题解

f [ i ] f[i] f[i]为初始值为 i i i时满足条件的方案总数,因在合法序列加入的数字将不大于序列的最后一位数,易得:
f [ n ] = ∑ 1 n / 2 f ( i ) f[n]=\sum_1^{n/2}f(i) f[n]=1n/2f(i)
同时:

  • i = 2 n + 1 时, f [ i ] = f [ i − 1 ] i=2n+1时,f[i]=f[i-1] i=2n+1时,f[i]=f[i1]
  • i = 2 n 时 , f [ i ] = f [ i − 1 ] + f [ i 2 ] i=2n时,f[i]=f[i-1]+f[\frac{i}{2}] i=2n,f[i]=f[i1]+f[2i]

同时初始化数组, f [ 1 ] = 1 f[1]=1 f[1]=1

#include<iostream>
using namespace std;
int n, f[10005];int main()
{cin >> n;f[1] = 1;for(int i = 2; i <= n ; i ++){f[i] = f[i - 1];if(i % 2 == 0)f[i] = f[i - 1] + f[i / 2];}cout << f[n] << endl;return 0;
}

或者这样套两个循环:

f[1]=1
f[2]=2=f[1]+1
f[3]=2=f[1]+1
f[4]=4=f[1]+f[2]+1
f[5]=4=f[1]+f[2]+1

以此类推即可:

#include<iostream>
using namespace std;
int n, f[10005];int main()
{cin >> n;f[1] = 1;for(int i = 2; i <= n; i ++){for(int j = 1; j <= i / 2; j ++)f[i] += f[j];f[i] ++;}cout << f[n] << endl;return 0;
}

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

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

相关文章

派(分治法)

题目&#xff1a;蒜头君的生日要到了&#xff01;根据习俗&#xff0c;他需要将一些派分给大家。他有 N个不同口味、不同大小的派。 有 F个朋友会来参加我的派对&#xff0c;每个人会拿到一块派&#xff08;必须一个派的一块&#xff0c;不能由几个派的小块拼成&#xff1b;可以…

Docker + Python

文章目录 一、Docker Hub - 使用搜索 Python二、Python Image 使用1、如何使用此 Image在 Python 应用项目中 创建`Dockerfile`文件运行单个 Python 脚本镜像中的多个 Python 版本2、镜像变体1、`python:<version>`2、`python:<version>-slim`3、`python:<versi…

虚拟机linux7.9下安装mysql遇到的问题

1.提示文件权限不够 解决&#xff1a;chmod -R 777 /usr/local/mysql/ 2.提示硬盘空间不够&#xff0c;mysql初始化失败 解决&#xff1a;更改/etc/my.cnf&#xff0c;将日志文件大小减少&#xff08;innodb_log_file_size&#xff09;&#xff0c;删除/data/mysql目录下的文…

GPU集群上分布式训练大模型

总结一下如何在超算系统上进行预训练大模型的分布式训练 / 微调&#xff0c;文中代码已上传至 github 实验环境 集群1&#xff1a;国家广州超算 星逸A800智能AI集群 GPU&#xff1a;8 * Nvdia Tesla-A800 80G显存 CPU&#xff1a;2 * 28核 Intel Xeon Gold 6348 内存&#xff…

读取excel并且显示进度条

读取excel并且显示进度条 通过C#实现DataGridView加载EXCEL文件&#xff0c;但加载时不能阻塞UI刷新线程&#xff0c;且向UI显示加载进度条。 #region 左上角导入 private async void ToolStripMenuItem_ClickAsync(object sender, EventArgs e) { …

Java | Leetcode Java题解之第552题学生出勤记录II

题目&#xff1a; 题解&#xff1a; class Solution {static final int MOD 1000000007;public int checkRecord(int n) {long[][] mat {{1, 1, 0, 1, 0, 0},{1, 0, 1, 1, 0, 0},{1, 0, 0, 1, 0, 0},{0, 0, 0, 1, 1, 0},{0, 0, 0, 1, 0, 1},{0, 0, 0, 1, 0, 0}};long[][] re…

Oracle OCP认证考试考点详解082系列16

题记&#xff1a; 本系列主要讲解Oracle OCP认证考试考点&#xff08;题目&#xff09;&#xff0c;适用于19C/21C,跟着学OCP考试必过。 76. 第76题&#xff1a; 题目 解析及答案&#xff1a; 以下哪三项活动会被记录在数据库的警报日志中&#xff1f; A. 块损坏错误 数据库…

103、Python并发编程:使用信号量Semaphore实现资源有限的并发场景

引言 在前面几篇文章的基础上&#xff0c;应对并发编程中现成同步的需求场景&#xff1a; 我们可以使用锁&#xff0c;作为多线程同步的几个核心基础&#xff0c;实现对临界资源的保护&#xff0c;确保满足基本的互斥访问逻辑。 使用条件变量Condition&#xff0c;实现有固定…

蛋奶烙饼:美味与温暖的邂逅

食家巷蛋奶烙饼&#xff0c;那金黄的色泽、浓郁的奶香和蛋香&#xff0c;光是看着就让人垂涎欲滴。它的制作过程并不复杂&#xff0c;却充满了生活的烟火气。将面粉、鸡蛋、牛奶等简单的食材混合在一起&#xff0c;搅拌成细腻的面糊。在平底锅中倒入少许油&#xff0c;舀一勺面…

Linux内核中IRQ Domain的结构、操作及映射机制详解

往期内容 本专栏往期内容&#xff0c;interrtupr子系统&#xff1a; 深入解析Linux内核中断管理&#xff1a;从IRQ描述符到irq domain的设计与实现 pinctrl和gpio子系统专栏&#xff1a; 专栏地址&#xff1a;pinctrl和gpio子系统 编写虚拟的GPIO控制器的驱动程序&#xff1a;…

cocos creator 3.8.3物理组件分组的坑

坑&#xff0c;坑的不行的大坑 group用的二进制的左移获取十进制的数值 目前是这样判断的&#xff0c;也不知道对不对&#xff0c;什么get、set Group没找到

如何解决“在ANACONDA prompt可以使用‘conda activate‘,但是在pycharm终端没办法使用该指令“”

一、设置好环境变量 此电脑&#xff08;右键&#xff09;-属性-高级系统设置-环境变量-在系统变量那一筐的PATH双击添加 二、完成后再测试conda activate 笔者测试完后&#xff0c;conda是可以用了&#xff0c;但是conda activate用不了。 显示该错误CommandNotFoundError:…

三菱MR-J4-B系列伺服参数一览

要点 与伺服系统控制器连接后&#xff0c;同服系统控制器的伺服参数的值即被写入各参数中。根据伺服系统控制器的机种和伺服放大器软件版本及MRConfigurator2的软件版本&#xff0c;存在无法设定的参数或范围。详细内容请参照伺服系统控制器的用户手册。请使用MR Configurator2…

Pattern program MPAT 详解

本文为VIP文章,主要介绍Pattern中元素与格式、常用指令、地址&数据产生指令等。 目录 一、pattern概述 二:Pattern构成元素 1、pattern构成元素:MPAT、END 2、pattern构成元素:pattern file name 3、pattern构成元素:SDEF 4、Pattern构成元素:REGISETR 5、Pa…

Qt编译lua库并调用

参考博客&#xff1a; 编译lua库 参考下面文章编译lua库文件 QT5.9学习笔记之QT编译lua库_qtluaintf.h-CSDN博客 https://blog.csdn.net/qq_23345187/article/details/112710677 Qt代码引用lua库文件 打开pro项目文件&#xff0c;右键空白处&#xff0c;点击添加库&#xff…

数据结构:直接插入排序

直接插入排序是数据结构中较为简单的插入排序法&#xff0c;基本思想是&#xff1a;把待排序的记录按照关键码值的大小逐个插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插完为止&#xff0c;得到一个新的有序序列。 实际上我们玩扑克时&#xff0c;就用了插入排…

Pr 视频过渡:溶解

效果面板/视频过渡/溶解 Video Transitions/Dissolve Adobe Premiere Pro 的视频过渡效果中&#xff0c;溶解 Dissolve效果组提供了多种平滑过渡方式&#xff0c;适用于不同的场景需求&#xff0c;从基础的淡入淡出到复杂的叠加溶解&#xff0c;帮助用户实现更具层次感的视觉过…

使用 Elasticsearch 构建食谱搜索(一)

作者&#xff1a;来自 Elastic Andre Luiz 了解如何使用 Elasticsearch 构建基于语义搜索的食谱搜索。 简介 许多电子商务网站都希望增强其食谱搜索体验。正确使用语义搜索可以让客户根据更自然的查询&#xff08;例如 “something for Valentines Day - 情人节的礼物” 或 “…

prompt资料收集

1. LANGgpt模板 # Role: 知识探索专家 ## Profile: - - 即刻App即刻App&#xff0c;享受探索、表达和创造https://m.okjike.com/originalPosts/649801f1ba47fe581a0da471?seyJ1IjoiNjQyM2IwMDE4NDg5Njk1NGJjYzhkNWU1IiwiZCI6MX0%3D2. 好的prompt的标准 主观的说&#xff1a;…

大数据学习10之Hive高级

1.Hive高级 将大的文件按照某一列属性进行GROUP BY 就是分区&#xff0c;只是默认开窗存储&#xff1b; 分区是按行&#xff0c;如一百行数据&#xff0c;按十位上的数字分区&#xff0c;则有十个分区&#xff0c;每个分区里有十行&#xff1b; 分桶是根据某个字段哈希对桶数取…