Atcoder ABC397-D 题解

news2025/3/16 22:31:10

https://atcoder.jp/contests/abc397/tasks/abc397_dhttps://atcoder.jp/contests/abc397/tasks/abc397_d

题目描述:

确定是否存在一对正整数(x,y),使得x^3-y^3=N


思路:

首先对方程进行转化

k=x-y

\because N=x^3-y^3=x^3-(x-k)^3=x^3-(x^3-3x^2k+3xk^2-k^3)

\therefore N=x^3-y^3=3x^2k-3xk^2+k^3

3x^2k-3xk^2+k^3-N=0

接下来确定k的范围

根据立方差公式

N=x^3-y^3=(x-y)(x^2+xy+y^2)=k(x^2+xy+y^2)

\because x>0,y>0     \therefore xy>0

\therefore k(x^2+xy+y^2)\geq k(x^2-2xy+y^2)=k\cdot k^2=k^3

\therefore N\geq k^3    \therefore k\leq \sqrt[3]{N}

\because N\leq 10^{18}

\therefore k\leq \sqrt[3]{n}\leq 10^{6}

因此,我们可以从1\sqrt[3]{N}来逐个枚举k

此时 方程的k就变成了常数

a=3k , b=-3k^2 , c=k^3-N

原方程变为ax^2+bx+c=0

这时,只需要解一下这个二次方程就可以了

x=\frac{-b\pm \sqrt {b^2-4ac}}{2a}

提醒:

\because b=-3k^2\geq -10^{12}

\therefore b^2\leq10 ^{24}   会爆long long

所以要开__int128


代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
int n;
signed main(){
	cin>>n;
	for(int i=1;i*i*i<=n;i++){
		int a=3*i,b=-3*i*i,c=i*i*i-n;
		__int128 u=b,v=a;
		u=u*u-4*v*c;
		__int128 k=sqrtl(u);
		if(k*k==u){
			int xa=(-b+k),xb=(-b-k);
			if(xa>0&&xa%(2*a)==0&&xa/2/a-i>0){
				xa/=(2*a);
				cout<<xa<<" "<<xa-i;
				return 0;
			}
			if(xb>0&&xb%(2*a)==0&&(xb/2/a)-i>0){
				xb/=(2*a);
				cout<<xb<<" "<<xb-i;
				return 0;
			}
		}
	}
	cout<<"-1";
	return 0;
}

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

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

相关文章

K8S学习之基础二十七:k8s中daemonset控制器

k8s中DaemonSet控制器 ​ DaemonSet控制器确保k8s集群中&#xff0c;所有节点都运行一个相同的pod&#xff0c;当node节点增加时&#xff0c;新节点也会自动创建一个pod&#xff0c;当node节点从集群移除&#xff0c;对应的pod也会自动删除。删除DaemonSet也会删除创建的pod。…

神经网络的基本知识

感知机 输入&#xff1a;来自其他 n 个神经元传递过来的输入信号 处理&#xff1a;输入信号通过带权重的连接进行传递, 神经元接受到总输入值将与神经元的阈值进行比较 输出&#xff1a;通过激活函数的处理以得到输出 感知机由两层神经元组成, 输入层接受外界输入信号传递给…

PostgreSQL技术内幕26:PG聚合算子实现分析

文章目录 0.简介1.概念说明2.朴素聚集3.Group by聚集3.1 哈希聚集3.2 分组聚集 0.简介 聚合算子在聚合函数在数据分析、报告生成和统计计算中扮演着重要角色&#xff0c;通过对多行数据进行计算&#xff0c;将多个输入值压缩为单一输出值&#xff0c;如求和、平均值、计数等。…

【RS】OneRec快手-生成式推荐模型

note 本文提出了一种名为 OneRec 的统一生成式推荐框架&#xff0c;旨在替代传统的多阶段排序策略&#xff0c;通过一个端到端的生成模型直接生成推荐结果。OneRec 的主要贡献包括&#xff1a; 编码器-解码器结构&#xff1a;采用稀疏混合专家&#xff08;MoE&#xff09;架构…

mac安装navicat及使用

0.删除旧的 sudo rm -Rf /Applications/Navicat\ Premium.app sudo rm -Rf /private/var/db/BootCaches/CB6F12B3-2C14-461E-B5A7-A8621B7FF130/app.com.prect.NavicatPremium.playlist sudo rm -Rf ~/Library/Caches/com.apple.helpd/SDMHelpData/Other/English/HelpSDMIndexF…

【HTML】二、列表、表格

文章目录 1、列表1.1 无序列表1.2 有序列表1.3 定义列表 2、表格2.1 定义2.2 表格结构标签2.3 合并单元格 1、列表 列表分为&#xff1a; 无序列表有序列表定义列表&#xff1a;一个标题下有多个小分类 1.1 无序列表 ul嵌套li&#xff0c;ul是无序列表&#xff0c;li是列表…

​​​​​​​大语言模型安全风险分析及相关解决方案

大语言模型的安全风险可以从多个维度进行分类。 从输入输出的角度来看,存在提示注入、不安全输出处理、恶意内容生成和幻觉错误等风险; 从数据层面来看,训练数据中毒、敏感信息泄露和模型反演攻击是主要威胁; 模型自身则面临拒绝服务和盗窃的风险; 供应链和插件的不安全引…

windows平台的ffmpeg编译使用

windows平台的ffmpeg编译使用 一、现状 本人使用libgdx开发galGame,发现扩展包gdx-video不支持mp4,不能忍,正好看到官网有支持自定义编译的文档,所以操作一下,自定义编译。本文重点在于操作windows平台,linux平台太简单了。 整个过程包括如下几个步骤。 二、代码下载…

FFMPEG录制远程监控摄像头MP4

手绘效果图 上图是录制功能的HTML前端页面&#xff0c;录制功能和解码视频放在一起。录制功能关键是录制(开始录制按钮)、停止录像按钮。当点击“录制”的时候则会开始录制MP4文件, 当点击停止的时候就会停止录制MP4。经过录制后&#xff0c;则会生成MP4,并放到我的RV1126的/tm…

centos操作系统上传和下载百度网盘内容

探序基因 整理 进入百度网盘官网百度网盘 客户端下载 下载linux的rpm格式的安装包 在linux命令行中输入&#xff1a;rpm -ivh baidunetdisk_4.17.7_x86_64.rpm 出现报错&#xff1a; 错误&#xff1a;依赖检测失败&#xff1a; libXScrnSaver 被 baidunetdisk-4.17.7-1.x8…

Rubick:基于 Electron 的开源插件化桌面效率工具箱

Rubick 是一款基于 Electron 构建的开源桌面工具箱&#xff0c;专为追求高效办公和个性化体验的用户设计。它通过自由集成丰富的插件&#xff0c;让用户能够根据自己的需求打造极致的桌面端效率工具。 软件命名由来Rubick 的名字来源于《DOTA2》中的英雄 Rubick&#xff08;拉…

ruoyi-vue部署

ruoyi源码类型 Ruoyi源码 编译打包后,直接部署tomcat服务器 Ruoyi-vue 前后端分离版 前端部署到nginx 后端部署到tomcat RuoYi-Cloud 微服务版 RuoYi-app 移动端版 RuoYi-vue 前后端分离版 环境 JDK>=1.8 MySQL >= 5.7 Maven >= 3.0 Node >= 12 Redis…

LLM论文笔记 23: Meta Reasoning for Large Language Models

Arxiv日期&#xff1a;2024.6.17机构&#xff1a;THU / MSRA 关键词 meta-reasoning推理方法prompt engineering 核心结论 1. 提出Meta Reasoning prompting&#xff0c;MRP是一种系统提示方法&#xff0c;能够帮助LLM动态选择最合适的推理方法&#xff0c;从而提升其灵活性和…

【最后203篇系列】015 几种消息队列的思考

背景 队列还是非常重要的中间件&#xff0c;可以帮助我们&#xff1a;提高处理效率、完成更复杂的处理流程 最初&#xff0c;我觉得只要掌握一种消息队列就够了&#xff0c;现在想想挺好笑的。 过去的探索 因为我用python&#xff0c;而rabbitmq比较贴合快速和复杂的数据处…

学习springboot 的自动配置原理

前言 为什么要学习springboot 的自动配置原理&#xff1f; 1学习 自定义成starter 的前提 实际开发中&#xff0c;我们如果定义公共的组件给团队使用&#xff0c;为了让他们使用方便就自定义成starter。而想要学习starter ,就要先了解springboot 的自动配置原理 2 面试需要 了…

排错 -- FISCO BCOS区块链网络 -- 3. 编译智能合约

文章为FISCO BCOS2.0搭建区块链平台中发现的问题与总结&#xff0c;出错原因不唯一 &#xff0c;解决办法不唯一 目前社区缺少完整&#xff0c;稳定的搭建平台和教程 &#xff0c;欢迎各位及时补充&#xff0c;如有错误请及时评论纠正&#xff01; 感谢各位搜索到这里&#…

ffmpeg 添加毫秒时间戳

网上有好多添加时间水印的&#xff0c;默认是到秒&#xff0c;而我需要到毫秒&#xff0c;查了一下&#xff0c;没有找到更好的方案&#xff0c;下面是自己实现的方案&#xff0c;可以显示到毫秒。如果有更好的方案&#xff0c;欢迎讨论 ffmpeg -i video.mp4 -vf "drawte…

centos7上安装Docker

文章目录 **1. 使用华为云镜像源替换Docker仓库****2. 安装Docker CE****3.更换docker镜像源-使用华为云的docker镜像源****4.补充&#xff1a;docker的使用****5.补充&#xff1a;删除docker的步骤** 1. 使用华为云镜像源替换Docker仓库 步骤&#xff1a; 删除无效的Docker仓…

【Linux内核系列】:文件系统收尾以及软硬链接详解

&#x1f525; 本文专栏&#xff1a;Linux &#x1f338;作者主页&#xff1a;努力努力再努力wz &#x1f4aa; 今日博客励志语录&#xff1a; 世界上只有一种个人英雄主义&#xff0c;那么就是面对生活的种种失败却依然热爱着生活 内容回顾 那么在之前的学习中&#xff0c;我们…

视频理解之Actionclip(论文宏观解读)

配合解读代码解读 1.研究背景 1. 视频行为识别的重要性 视频行为识别是视频理解领域的核心任务之一&#xff0c;旨在通过分析视频内容来识别和分类其中的人物行为或活动。这一任务在多个领域具有重要的应用价值&#xff0c;例如智能监控、人机交互、自动驾驶、医疗健康等。随…