蓝桥杯 2024 15届国赛 A组 儿童节快乐

news2025/6/12 21:33:07

P10576 [蓝桥杯 2024 国 A] 儿童节快乐

题目描述

五彩斑斓的气球在蓝天下悠然飘荡,轻快的音乐在耳边持续回荡,小朋友们手牵着手一同畅快欢笑。在这样一片安乐祥和的氛围下,六一来了。

今天是六一儿童节,小蓝老师为了让大家在节日里享受解题的乐趣,特地准备了一道有趣的题目。

题目内容为:求出所有满足以下条件的整数 n n n 的总和:

  1. ( n + 10120300500 ) (n+10120300500) (n+10120300500) 是一个完全平方数。
  2. ( n − 10120300500 ) (n-10120300500) (n10120300500) 也是一个完全平方数。

一个数如果可以表示为另一个整数的平方,那么这个数就叫做完全平方数。例如, 4 4 4 可以表示为 2 2 2 的平方, 9 9 9 可以表示为 3 3 3 的平方,因此 4 4 4 9 9 9 都是完全平方数。

请大家用心仔细地思考,求出答案。同时祝大家儿童节快乐,解题过程开心顺遂!

输入格式

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

输出格式

这是一道结果填空题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

题解

  • 本题官方判题机有误,真实答案已经超过 longlong 范围,请使用洛谷判题机

  • 思路

    • k = 10120300500 k = 10120300500 k=10120300500

    • 容易想到从 1 1 1 开始枚举 n n n,看看有多少个 n n n 满足这样的条件,并累计,但经过测试,即使枚举到 10 9 10^9 109,枚举到 10 10 10^{10} 1010 还是有新的 n n n 满足条件,因此边界无法确定

    • 观察题目所给的两个式子
      n + k = a 2 (1) n + k = a^2 \tag{1} n+k=a2(1)

      n − k = b 2 (2) n - k = b^2 \tag{2} nk=b2(2)

      • 可以看出, ( 1 ) − ( 2 ) = a 2 − b 2 = 2 k (1) - (2) = a^2 -b^2 = 2k (1)(2)=a2b2=2k
      • 由平方差公式可得: ( a + b ) ( a − b ) = 2 k (a + b)(a - b) = 2k (a+b)(ab)=2k
      • 若能求解出 a , b a,b a,b 即可求出 n n n n = a 2 − k = b 2 + k = a 2 + b 2 2 n = a^2 - k = b^2 + k = \frac{a^2 + b^2}{2} n=a2k=b2+k=2a2+b2
    • 如何求解 a , b a,b a,b

      • x = ( a + b ) , y = ( a − b ) x = (a + b), y = (a - b) x=(a+b),y=(ab),那么有 x × y = 2 k x \times y = 2k x×y=2k
      • 枚举 2 k 2k 2k 的所有因子,即可求出 x , y x, y x,y
        • 2 k = 20240601000 > 10 10 2k = 20240601000 > 10^{10} 2k=20240601000>1010,需要使用 O ( n ) O(\sqrt n) O(n ) 算法枚举因子
      • 求出 x , y x,y x,y,那么 a = x + y 2 , b = x − y 2 a = \frac{x+y}{2}, b = \frac{x-y}{2} a=2x+y,b=2xy
    • longlong 能存下答案和中间结果吗?

      • 极端一些,假设 x = k − 1 , y = 1 x = k - 1, y = 1 x=k1,y=1,那么 a , b ≈ k / 2 ≈ 5 × 10 9 a, b \approx k/2 \approx 5 \times 10^9 a,bk/25×109
      • 当计算 n n n 时, a 2 + b 2 ≈ 5 × 10 19 a^2 + b^2 \approx 5 \times 10^{19} a2+b25×1019longlong 的范围大概是 9 × 10 18 9 \times 10^{18} 9×1018,存储不了
      • 直接用 __int128 一步到位,输出要自定义
    • 至此,可以写出代码

      typedef __int128 Int;
      int main() {
          Int k = 10120300500;
          Int s = 2 * k;
          Int res = 0;
          for(Int x = 1; x * x <= s; ++x) {
              if(s % x == 0) {
                  Int y = s / x;
                  Int a = (x + y) / 2, b = (x - y) / 2;
                  res += (a * a + b * b) / 2;
              }
          }
          return 0;
      }
      
    • 但是提交后发现出错了,为什么呢?

      • 观察到求解 a , b a,b a,b 时,使用了除法,而 cpp 的除法是向零截断的,因此可能存在小数 a , b a,b a,b 也满足条件,那么求出的 n n n 也是一个小数,与题目要求整数不符
      • 要保证 a , b a,b a,b 是整除得到的,那么 x + y , x − y x + y, x-y x+y,xy 必须是偶数
  • AC 代码

    #include <bits/stdc++.h>
    using namespace std;
    
    typedef __int128 Int;
    
    void output(Int num) {
        char buf[50] = {0};
        int i = 0;
        while(num) {
            buf[i++] = '0' + num % 10;
            num /= 10;
        }
        for(int j=i-1; j>=0; --j) cout << buf[j];
    }
    
    int main() {
        Int k = 10120300500;
        Int s = 2 * k;
        Int res = 0;
        for(Int x = 1; x * x <= s; ++x) {
            if(s % x == 0) {
                Int y = s / x;
                if((x + y) % 2 == 0 && (x - y) % 2 == 0) {
                    Int a = (x + y) / 2, b = (x - y) / 2;
                    res += (a * a + b * b) / 2;
                }
            }
        }
        output(res);
        return 0;
    }
    

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

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

相关文章

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…

CentOS下的分布式内存计算Spark环境部署

一、Spark 核心架构与应用场景 1.1 分布式计算引擎的核心优势 Spark 是基于内存的分布式计算框架&#xff0c;相比 MapReduce 具有以下核心优势&#xff1a; 内存计算&#xff1a;数据可常驻内存&#xff0c;迭代计算性能提升 10-100 倍&#xff08;文档段落&#xff1a;3-79…

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…

深入理解JavaScript设计模式之单例模式

目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式&#xff08;Singleton Pattern&#…

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…

【机器视觉】单目测距——运动结构恢复

ps&#xff1a;图是随便找的&#xff0c;为了凑个封面 前言 在前面对光流法进行进一步改进&#xff0c;希望将2D光流推广至3D场景流时&#xff0c;发现2D转3D过程中存在尺度歧义问题&#xff0c;需要补全摄像头拍摄图像中缺失的深度信息&#xff0c;否则解空间不收敛&#xf…

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…

dedecms 织梦自定义表单留言增加ajax验证码功能

增加ajax功能模块&#xff0c;用户不点击提交按钮&#xff0c;只要输入框失去焦点&#xff0c;就会提前提示验证码是否正确。 一&#xff0c;模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…

376. Wiggle Subsequence

376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…