P8676 [蓝桥杯 2018 国 A] 自描述序列 题解

参考文章

题意

题目表述的很清楚

思路

#1 暴力枚举

根据题目给出的规律,很容易用 O ( n ) O(n) O(n) 的时间求出 1 0 6 10^6 106 的数据,这样就可以得到 30 30 30 分。

显然,这种方法是不对的,我们在上面进行优化。

#2 枚举优化

gig_igi​ 用来表示对应下标出现的次数,先对 g i g_i gi 求和 ∑ i = 1 n g i ​ \sum_{i=1}^{n} g_i​ i=1ngi。在求和的时候判断与目标数据的大小。如果大于目标 n n n,则答案就是下标 i i i

这样可以得到 70 70 70 分。

#3 正解

因为第 i i i 个数据会在 g g g 中出现 g i g_i gi​ 次,那么那么就相当于在 g g g 中会出现 g i g_i gi 个长 i i i 且数字相等的区间,这样的话,就可以根据 n n n 所在的区间去求解。

推断出 n n n 在第 i i i 个数据段中,是第 n − m n - m nm 个数字。在第 i i i 个区域中,每一个数据会重复出现 i i i 次。那么 n − m n-m nm 就是在这个段中的位置就是 ⌈ ( ( n − m ) / i ) ⌉ \left \lceil ((n - m) / i) \right \rceil ((nm)/i)

这样可以得到 100分。

代码

#include <bits/stdc++.h>
#define int long long // 定义int为long long类型,便于处理大数
using namespace std;int n, res, cnt, g[1000010];int main() {ios :: sync_with_stdio(false); // 关闭同步,提高输入输出效率cin >> n; // 读取输入的n值g[1] = 1, g[2] = 2; // 初始化g数组的前两个元素// 预处理 g[i] 数组for (int i = 2, j = 2; i < 1000010; i++)for (int k = 0; k < g[i] && j < 1000010; k++) g[j++] = i;int i = 1;while (true) {res += i * g[i]; // 计算当前总和if (res >= n) // 如果总和大于等于n,计算并输出结果return res -= i * g[i], cout << cnt + (n - res + i - 1) / i << endl, 0;cnt += g[i++]; // 计数器增加}return 0;
}

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

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

相关文章

tldraw白板组件

tldraw 是一个开源的白板组件&#xff0c;10行代码就可以将其接入到 React 项目中&#xff1a; import { Tldraw } from tldraw import tldraw/tldraw.cssexport default function App() {return (<div style{{ position: fixed, inset: 0 }}><Tldraw /></div&…

u盘插到另一台电脑上数据丢失怎么办?提供实用的解决方案

在现代数字化生活中&#xff0c;U盘作为一种便携式存储设备&#xff0c;承载着我们重要的数据和信息。然而&#xff0c;有时当我们将U盘插入另一台电脑时&#xff0c;可能会遇到数据丢失的棘手问题。这可能是由于多种原因造成的&#xff0c;那么&#xff0c;U盘插到另一台电脑上…

多账号注册的原理是什么

多账号注册的原理主要基于自动化脚本或软件&#xff0c;通过模拟人工操作来实现大量账号的自动注册。这一过程涉及多个关键步骤和原理&#xff0c;下面将详细解释&#xff1a; 一、网络请求分析 多账号注册的第一步是分析目标网站或应用程序的注册接口。这通常通过使用抓包工…

大数据面试题之HDFS

目录 HDFS文件写入和读取流程 HDFS组成架构 介绍下HDFS&#xff0c;说下HDFS优缺点&#xff0c;以及使用场景 HDFS作用 HDFS的容错机制 HDFS的存储机制 HDFS的副本机制 HDFS的常见数据格式&#xff0c;列式存储格式和行存储格式异同点&#xff0c;列式存储优点有哪些? …

虚拟化技术(一)

目录 一、虚拟化技术简介二、服务器虚拟化&#xff08;一&#xff09;服务器虚拟化的层次&#xff08;二&#xff09;服务器虚拟化的底层实现&#xff08;三&#xff09;虚拟机迁移&#xff08;四&#xff09;隔离技术&#xff08;五&#xff09;案例分析 一、虚拟化技术简介 虚…

ubuntu中共享文件夹看不到了,解决方法

1、检查共享文件夹配置 2、创建 3、查看共享文件夹 4、另一问题&#xff0c;每次重启虚拟机后&#xff0c;共享文件夹又没了&#xff1f;

尚玩助手短视频看广告任务模式app开发

尚玩助手短视频APP的开发涉及多个关键步骤和考虑因素&#xff0c;以下是其开发的主要步骤和要点&#xff1a; 需求分析和规划&#xff1a; 确定目标用户群体和市场定位。 收集和分析竞争对手的数据和特点&#xff0c;了解市场上已有的短视频APP的优缺点。 确定尚玩助手短视频…

数据库索引与事务

数据库索引与事务 索引 概念 一个排序的列表&#xff0c;为了实现对表的快速查询&#xff08;类似于目录&#xff09;&#xff0c;把一个列作为索引。 对于有序的列表&#xff0c;就可以使用二分法进行快速查询&#xff0c;也叫B树查询。 如果没有索引&#xff0c;那么就会遍历…

kerberos认证:生成keytab文件并实现java代码用keytab登录hadoop集群

Kerberos介绍&#xff1a; Kerberos 是一种网络认证协议&#xff0c;用于在不安全的网络中以安全的方式对用户和服务进行身份验证。它通过使用密钥加密技术来防止数据被窃听或篡改&#xff0c;确保了认证过程的安全性。Kerberos 认证的主要特点包括&#xff1a; 票据&#xff…

Git->git pull 和 git pull --rebase的详解

Git拉取代码的坑 格式&#xff1a;git xx指令 origin/远程仓库分支名称假如本地仓库和远程仓库都是空的 本地仓库向远程仓库提交一个文件 git commit -a -m "local first commit"&#xff1a;-a暂存修改文件到暂存区&#xff0c;准备本地提交。-m表示提交信息git pu…

常微分方程算法之编程示例五(阿当姆斯法)

目录 一、研究问题 二、C代码 三、计算结果 一、研究问题 本节我们采用阿当姆斯法&#xff08;Adams法&#xff09;求解算例。 阿当姆斯法的原理及推导请参考&#xff1a; 常微分方程算法之阿当姆斯法&#xff08;Adams法&#xff09;_四步四阶adams显格式;三步四阶adams隐…

云计算运维工程师面试

1. 云计算运维工程师的角色和职责是什么? 回答: 云计算运维工程师负责确保云计算环境(包括硬件和软件系统)的高可用性和稳定性。他们的主要职责包括: 监测系统和应用程序的性能,确保它们正常运行。故障排除,快速响应并解决系统或应用程序中出现的问题。容量规划,根据…

10.二次开发——黑马程序员Java最新AI+若依框架项目

目录 前言零、使用若依修改器修改项目名称一、创建sky-merchant模块1.创建模块2. 在新模块中导入依赖3. 父工程锁定版本4. sky-admin 导入依赖 二、菜品管理页面生成1.根据页面原型&#xff0c;确定表信息2.设计表3使用代码生成器生成页面4&#xff0c;下载tb_dish代码并分别导…

Matlab|【免费】含氢气氨气综合能源系统优化调度

目录 主要内容 部分代码 结果一览 下载链接 主要内容 该程序参考《_基于氨储能技术的电转氨耦合风–光–火综合能源系统双层优化调度》模型&#xff0c;对制氨工厂、风力发电、电制氢、燃气轮机、火电机组等主体进行建模分析&#xff0c;以火电机组启停成本、煤耗…

VS Code修改菜单栏字体大小

修改方法 打开VS Code&#xff0c;快捷键 CtrlShiftP&#xff0c;在弹出的输入框中输入 setting&#xff0c;找到带有JSON的一项&#xff0c;如图所示&#xff1a; 原文链接 window.zoomLevel 前后变化 终端字体大小 File -> Preferences -> Settings -> Features…

用Hugging Face Transformers,高效部署:多显卡量化感知训练并转换为ONNX格式的多标签分类模型

文章目录 环境准备数据准备数据集定义模型定义多显卡训练模型保存与 ONNX 转换验证 ONNX 模型部署到移动设备 要在多显卡上进行量化感知训练&#xff08;QAT&#xff09;&#xff0c;然后将量化后的模型转换为 ONNX 格式并部署到移动设备&#xff0c;可以按照以下步骤进行&…

mysql数据库SQL语句大全详解(下)

六、事务管理 1、开始事务 START TRANSACTION;2、提交事务 COMMIT;3、回滚事务 ROLLBACK;4、保存点 设置保存点&#xff1a; SAVEPOINT savepoint_name;回滚到保存点&#xff1a; ROLLBACK TO SAVEPOINT savepoint_name;七、视图 1、创建视图 CREATE VIEW view_name A…

昇思25天学习打卡营第3天|数据集 Dataset

文章目录 要训练AI&#xff0c;大量的数据是基础。就像我们人去学习写作文一样&#xff0c;得先有大量的输入&#xff0c;然后才能有一个不错的输出。AI也一样&#xff0c;需要喂大量的数据以后&#xff0c;才可能有一个不错的预测。 我们产生的数据多种多样 乱七八糟。但计算…

海外短剧系统:一扇窥探多元文化的奇妙之窗

随着全球化的推进&#xff0c;文化交流的壁垒逐渐消融&#xff0c;我们得以更加便捷地领略到世界各地的独特风情。在这一背景下&#xff0c;海外短剧系统应运而生&#xff0c;它如同一扇扇虚拟的窗户&#xff0c;将我们带入不同国家、不同民族、不同文化的世界&#xff0c;让我…

Spark算法之ALS模型(附Scala代码)

Spark算法之ALS模型&#xff08;附Scala代码&#xff09; 在大数据时代&#xff0c;个性化推荐系统已成为连接用户与信息的桥梁&#xff0c;而算法则是构建这一桥梁的基石。Apache Spark&#xff0c;作为一款强大的分布式计算系统&#xff0c;提供了丰富的机器学习库&#xff…