CF1584A Mathematical Addition 题解

题意

给定 $u,v$,求 $\dfrac xu+\dfrac yv=\dfrac{x+y}{u+v}$ 的任意一组整数解。

思路

先化简方程。两边同乘 $uv(u+v)$:$$ xv(u+v)+yu(u+v)=uv(x+y) $$ 拆括号:$$ xvu+xv^2+yu^2+yuv=uvx+uvy $$ 消去 $xvu,yuv$:$$ xv^2+yu^2=0 $$ 也就是说直线 $xv^2+yu^2=0$ 上的点都可以。

提公因式:$$ u^2v^2(\dfrac{x}{u^2}+\dfrac{y}{v^2})=0 $$ 那么就很显然了,令 $x=u^2p,y=v^2q\ (p+q=0)$ 即可。

为了保险,$p,q$ 最好分别取 $±1$。

代码

方案 1 $(p=1)$:

#include <iostream>
#define int long long
using namespace std;
signed main()
{
    int t;cin >> t;
    for(int i = 0, u, v;i < t;++i)
        cin >> u >> v, cout << u * u << " " << -v * v << endl;
    return 0;
}

方案 2 $(p=-1)$:

#include <iostream>
#define int long long
using namespace std;
signed main()
{
    int t;cin >> t;
    for(int i = 0, u, v;i < t;++i)
        cin >> u >> v, cout << -u * u << " " << v * v << endl;
    return 0;
}
posted @ 2021-12-17 15:09  Jijidawang  阅读(0)  评论(0编辑  收藏  举报  来源