P9783 [ROIR 2020 Day1] 平方 题解
题目大意
给你一个整数
解题思路
首先,我们把以上式子分解一下,得到
- 当
为奇数时,此时若 ,恒有解,其中一组关于 、 的解为 。 - 当
为偶数时,当且仅当 且 时有解,其中一组关于 、 的解为 。
综上所述,按照以上两种情况讨论即可,输出时分别输出
AC 代码
#include<math.h>
#include<stdio.h>
#define ll long long
#include<algorithm>
using namespace std;
ll n,c1,c2;
bool is=true;
int main(){
scanf("%lld",&n);
if(n==0){
printf("Yes\n1 1");
return 0;
}
if(n==1||n==4){
printf("No");
return 0;
}
if(n&1){
puts("Yes");
c1=1,c2=n;
}else{
if(n%4!=0)
puts("No"),
is=false;
else{
puts("Yes");
c1=2,c2=n/2;
}
}if(is)
printf("%lld %lld",max((c1+c2)/2,abs(c1-c2)/2),min((c1+c2)/2,abs(c1-c2)/2));
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下