这种题做的比较少,思路很不清晰,实际上没有思路。
这种题需要考虑特殊情况,即反向构造。考虑:如果x、y本身与u、v相同,那么1+1不等于1。
拓展这个想法,既然我们现在已经可以获得定值,那么可不可以把这个定值拓展为带有未知数的恒等式呢?
像这类题,往往都是构造特殊情况得出答案,且很少使用较高级的数学知识。
正解为构造a^2-b^2=(a+b)*(a-b),并在等式右边约去a+b,最终得到a-b=a-b,实际上是x=u^2,y=-v^2(此处符号只要保证其中一个是负的,另一个是正的即可)
另外开longlong要小心起见,没有影响就要多开。
#include<cstdio>
#include<iostream>
#define ll long long
using namespace std;
int main(){
int t;
scanf("%d",&t);
while(t--){
ll u,v;
scanf("%lld%lld",&u,&v);
ll ans1,ans2;
ans1=u*u,ans2=-v*v;
printf("%lld %lld\n",ans1,ans2);
}
return 0;
}