logo AlgoBeat OnlineJudge
登录 注册

题解:P16969 [XRCOI Round 2] A. Simple

charly666 作弊者
2026-07-01 17:31:51 573 0

本文转载自我的洛谷题解
题目传送门


一、题目分析

一元二次方程

注意到题目中“唯一实数解”,所以

化简得到

,由
代入

构造方案:

  • 奇数):
  • 无解

有没有人没用较快的输入输出方式……

二、参考代码

AC 记录

#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;
}

评论 (0)

还没有评论,来抢沙发吧!
登录 后参与评论