牛客题解 | 怪数

news/2025/3/5 12:05:40/文章来源:https://www.cnblogs.com/wc529065/p/18752357

题目

题目链接

题解:

考察点: 数学,打表找规律

易错点:

注意最好把\(a\)\(b\)都开成long long类型,因为在计算的过程中有可能会爆\(int\)

解法:打表找规律

这题第一眼看上去并没有什么神奇的数学结论可以一眼秒掉,但数据范围又这门大,很显然可以通过打表来找规律。于是对\(100\)以内的小数据进行暴力

#include "bits/stdc++.h"
using namespace std;
int main()
{for(int i=1;i<=100;i++){int sum=0;for(int j=1;j<=i;j++){sum+=i/j;}if(sum%2==0){if(i%100==0) printf("%d\n",i);else printf("%d ",i);}}printf("\n");return 0;
}

整理结果后有如下结果

4 5 6 7 8 
16 17 18 19 20 21 22 23 24 
36 37 38 39 40 41 42 43 44 45 46 47 48 
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 
100

很显然可以从上表中观察出来,当\(i\)为偶数时,位于区间\([i^2,(i+1)^2)\)内数全为满足要求的怪数。

有了这个结论之后,对于整数\(X\),就可以快速统计出\([1,X]\)内的怪数个数。设\(v=[\sqrt{X}]\),则对\(v\)进行分类讨论。如果\(v\)是奇数,则说明从\(v^2\)一直到\(X\)之后不可能再存在怪数。而前面的怪数个数\(\sum_{i=0}^{i=\frac{v-1}2}4\times i+1\)。而如果\(v\)是偶数,则说明后面从\(v^2\)\(X\)还存在怪数,故结果应该是\(\sum_{i=0}^{i=\frac{v-1}2- 1}4\times i+1\)最后还应该加上\(X-v^2+1\)。最后的集过应该为\([1,b]\)区间内的个数,减去\([1,a-1]\)区间内的个数。

#include "bits/stdc++.h"
using namespace std;
typedef long long LL;
LL a,b;
LL solve(LL x){if(x<0) return 0;if(x==0) return 1;LL v=sqrt(x),s=0;if(v%2){return v*(v+1)/2;}else{LL t=v-1;s=t*(t+1)/2;s+=x-v*v+1;}return s;
}
int main()
{scanf("%lld%lld",&a,&b);printf("%lld\n",solve(b)-solve(a-1));return 0;
}

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

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

相关文章

为什么重新object的finalize方法后,PhantomReference失效了

未重写Object的finalize方法public static class MyObject {}使用 PhantomReference 来监听引用是否被回收ReferenceQueue<Object> queue = new ReferenceQueue<>();MyObject object = new MyObject();PhantomReference<MyObject> phantomReference = new Ph…

牛客题解 | 平方串

牛客题库题解题目 题目链接 题解 题目难度:中等 知识点:LCS(最长公共子序列问题),动态规划 分析: 本题实际是要找出s的最长子序列,看到这个问题就应该想到利用动态规划去解决。一般是找s1、s2两个字符串中的最长子序列,那么该题中就可以遍历s,以每个字符位置作为分割点…

车身域控制器BDCU

集成化是整车降本最重要的手段,域控和线束的深度融合是提升整车集成度的关键。车身域控制器作为汽车域控制器之一,在功能集成、系统优化和技术创新方面取得了显著进展。经纬恒润自主研发的车身域控制器(BDCU),能够兼容传统BCM功能,同时集成空调算法、门控逻辑、胎压监控等…

随记-NGNIX关于反向代理8080 和 8081

​ 在\conf\nginx.conf中有一段代码这里解释是: 在这个 Nginx 配置中,8080 和 8081 是两个不同的端口,分别用于不同的用途。它们的关系如下:8080 端口 作用: Nginx 监听 8080 端口,作为前端请求的入口。 功能: 处理静态资源请求(如前端页面)。 将 /api 开头的请求转发到…

RLChina2024 | 汪军 LLM and AI Agents: A Roadmap and Vision towards AGI

本文记录此次报告的key point(个人向) llm时代的几点difficulityInference-time computation scallingOpenAI o1 利用RL来显式整合inference期间推理的step(inference-time computation) (从predicte next-token范式到RL解决问题范式)predict next token是监督学习,受限于…

若依开发微信小程序遇到的问题一

如上所述,该错误是由于Spring在创建familyMemberController时,无法满足familyMemberService的依赖注入。进一步追踪发现,wechatServiceImpl中的wechat.appId配置项未正确配置,导致依赖注入失败。 分析原因可能是配置文件缺失或错误:wechat.appId在配置文件中未定义或拼写错…

AI工具链接汇总

1、chatgpt4 https://www.chatgp4.com/gpt功能应用场景:智能文案生成:GPT网页版智能平台具备强大的自然语言处理能力,能够根据用户输入的关键词或提示,生成高质量的文章、广告文案、营销邮件等。无论是文章创作、内容编辑,还是社交媒体上的推文撰写,都能高效完成,极大地…

linux另类实现matlab编辑器的vim模式

使用matlab编程练习中,发现matlab的自带的编辑器也不错,主要是分节运行非常方便,但是没有vim模式有点难受。经过摸索,变相实现了matlab中的编辑器的vim模式。安装好linux下matlab 2024a,其他版本也无所谓,安装好vim,我的是最新版本。左边显示器垂直放置,右边显示器水平…

在Unity转微信小游戏下,如何用Worker实现多线程

1)在Unity转微信小游戏下,如何用Worker实现多线程2)Unity的jslib库和微信小游戏的game.js如何互相调用函数或者通信3)如何在Unity中实现资源的深度复制这是第422篇UWA技术知识分享的推送,精选了UWA社区的热门话题,涵盖了UWA问答、社区帖子等技术知识点,助力大家更全面地…

YASKAWA喷涂机器人维修的常见问题

一、安川机器人示教器维修步骤详解 - 检查电源供应:确保电源供应正常,检查电源模块是否有短路或其他损坏。 - 检查连接:检查示教器与其他组件的连接是否牢固,包括电缆、插头等。 - 检查电路板:检查示教器电路板上的电子元件是否有明显的损坏,如烧焦、膨胀…

面试官:谈谈你对线程池拒绝策略的理解?

线程池的拒绝策略是指,当线程池无法承载更多任务时执行的行为。也就是当线程池的核心线程数、最大线程、任务队列都满的情况下,又来了新的任务时,线程池执行的行为被称之为线程池的拒绝策略。 线程池的执行流程如下:1.内置拒绝策略 在 Java 中,线程池内置了以下四种拒绝策…