题解:P16969 [XRCOI Round 2] A. Simple
一、题目分析
一元二次方程
注意到题目中“唯一实数解”,所以
化简得到
令
令
构造方案:
有没有人没用较快的输入输出方式……
二、参考代码
AC 记录
::::success[code]{open}
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int t;
int main(){
scanf("%d",&t);
while(t--){
ll a;
scanf("%lld",&a);
if(a==1||a==2||a==4){
puts("No");
continue;
}
if(a%2==1){
ll b=(a-1)*(a-1)/4,c=(a*a-1)/4;
printf("Yes\n%lld %lld\n",b,c);
}else if(a%8==0){
ll b=a/8,c=3*a/8;
printf("Yes\n%lld %lld\n",b,c);
}else if(a%4==2){
ll b=(a-2)*(a-2)/8,c=(a*a-4)/8;
printf("Yes\n%lld %lld\n",b,c);
}else{
ll b=(a-4)*(a-4)/16,c=(a*a-16)/16;
printf("Yes\n%lld %lld\n",b,c);
}
}
return 0;
}