若我们并肩作战,你要照顾好自己哦?|

xingyu_xuan

园龄:1年6个月粉丝:13关注:1

5.9 T2 推式子的过程

和题解的做法有些不同,不知道为什么,但是能够通过。

首先按题解的做法先将式子除以 z2。令 yz=a,xz=b。有:

x2z2xyz2y2z2+yz+1xz=0a2ab+b2+a+1b=0

题解的人类智慧:令 k=b1a1。我们容易发现有 b=akk+1

我们的思路就是用 k 表示 a,b,显然难度有点大(,但是没有其他做法,所以我们直接把 b=akk+1 代入到上面那个关于 a,b 的式子中:

a2a(akk+1)+(akk+1)2+a+1(akk+1)=0a2a2k+aka+a2k2+k2+12ak2+2ak2k+a+1ak+k1=0

读者可以尝试自行抵消一部分,最后我们把这依托写成一元二次方程的形式,我们有:

(k2k1)a2+(2k2+2k)a+(k2k+1)=0

因为最后和题解有一点不一样,所以这里可能不保证正确性,但是若算的不一样,应该可以用下面一样的方法解这个方程:

A=k2k1,B=2k2+2k,C=k2k+1,有:

A+B+C=0

令人惊讶,这样的话,上面那个式子有一个 a1 的因式,但是先前我们的 a1 是分母,所以这里 a1。我们可以很容易写出另一个因式,为:

AaC=(k2k1)a(k2k+1)

OK,那么这个时候就能很容易表示 a 了,其值为:

k2k+1k2k1

代入我们最开始那个 b=akk+1,有:

b=k3k2+kk2k1k3k2kk2k1+k2k1k2k1=k2+k1k2k1

我们设 k 的最简分数形式为 pq,这里直接代入,算是比较简单了:

a=(pq)2pq+1(pq)2pq1=p2pq+q2p2pqq2b=(pq)2+pq1(pq)2pq1=p2+pqq2p2pqq2

因为我们定义 a=yz,b=xz,所以我们可以这样表示 x,y,z

x=t(p2+pqq2),y=t(p2pq+q2),z=t(p2pqq2)

其中 t 为一个有理数,但是 gcd(x,y,z)=1,所以 t=1

因为 y 的限制,我们可以把 p,q 的绝对值范围控制在 O(n) 大小的范围内,暴力枚举即可。

但是显然 a=1 的时候存在解 x=y=z=1 我们没有算到,加上就行了。

本文作者:xingyu_xuan

本文链接:https://www.cnblogs.com/xingyuxuan/p/18182950

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   xingyu_xuan  阅读(27)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起