news 2026/4/16 15:09:44

智乃的数字【牛客tracker 每日一题】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
智乃的数字【牛客tracker 每日一题】

智乃的数字

时间限制:1秒 空间限制:256M

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

如果一个奇数满足以下两个条件之一:

则称它是一个"智数"

5 55个"智数"分别为3 , 5 , 9 , 15 , 21 {3,5,9,15,21}3,5,9,15,21

现在智乃想要你给升序排序第k kk个"智数"

输入描述:

第一行输入一个正整数T ( 1 ≤ T ≤ 1 0 5 ) T(1≤T≤10^5)T(1T105)表示测试用例的组数

对于每组测试用例,在一行中输入一个正整数k ( 1 ≤ k ≤ 1 0 9 ) k(1≤k≤10^9)k(1k109)

输出描述:

对于每个问题,输出一行一个正整数,表示问题的答案

示例1

输入:

5 1 2 3 4 5

输出:

3 5 9 15 21

示例2

输入:

1 1000000000

输出:

4285714285

解题思路

通过分析“智数”的规律,发现其以7 77个为一组、每组间隔30 3030的周期性特征,先预存第一组的7 77个智数到数组a aa中(27 , 3 , 5 , 9 , 15 , 21 , 25 27,3,5,9,15,21,2527,3,5,9,15,21,25,对应组内不同位置的智数);对于每组测试用例的k kk值,先计算组数为( k − 1 ) / 7 (k-1)/7(k1)/7(即前面有多少个完整组),每组对应30 3030的倍数,再通过k kk%7 77得到该智数在组内的索引,最终结果为组数乘以30 3030加上数组a aa中对应索引的数值;该方法利用周期性规律避免了逐一枚举判断智数的复杂过程,单次查询时间复杂度为O ( 1 ) O(1)O(1),适配T TT1 e 5 1e51e5k kk1 e 9 1e91e9的大规模输入,高效精准输出第k kk个智数。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=2e5+10;ll a[]={27,3,5,9,15,21,25};voidsolve(){ll k;cin>>k;cout<<((k-1)/7)*30+a[k%7]<<endl;}intmain(){ll t;cin>>t;while(t--)solve();return0;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 9:00:50

ubuntu 控制台 清屏命令

在Ubuntu控制台&#xff08;终端&#xff09;中&#xff0c;清屏的常用方法有以下几种&#xff0c;按推荐顺序排列&#xff1a;1. clear 命令直接输入&#xff1a;在终端中输入 clear 后按回车&#xff0c;屏幕会滚动清空当前显示内容&#xff0c;保留历史命令记录&#xff08;…

作者头像 李华
网站建设 2026/4/16 9:01:11

【开题答辩全过程】以 基于Java的保定理工科研信息管理系统的设计与实现为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

作者头像 李华
网站建设 2026/4/16 10:39:29

24、Python在多操作系统及云计算环境中的应用与实践

Python在多操作系统及云计算环境中的应用与实践 1. OS X系统管理 1.1 获取和排序进程名 在OS X系统中,可以使用以下代码获取并排序应用程序的进程名: processnames = sysevents.application_processes.name.get() processnames.sort(lambda x, y: cmp(x.lower(), y.lowe…

作者头像 李华
网站建设 2026/4/16 10:39:49

30、Python 并发编程:线程、进程与调度

Python 并发编程:线程、进程与调度 1. 线程编程基础 在 Python 中,线程是实现并发编程的一种方式。以下代码展示了如何创建一个线程池来执行 arping 操作: worker.start() #spawn pool of arping threads for i in range(num_arp_threads):worker = Thread(target=arp…

作者头像 李华
网站建设 2026/4/16 10:39:51

PostgreSQL如何能存储一亿条链接信息?

文章目录前言1、直接存储一亿数据会遇到的问题是什么&#xff1f;2、为什么PostgreSQL是合适的选择&#xff1f;3、用PostgreSQL进行存储大体思路一、基础前提&#xff1a;链接信息表结构设计1.1 基础表结构1.2 存储空间测算&#xff08;一亿条数据&#xff09;二、核心调优&am…

作者头像 李华