码迷,mamicode.com
首页 > 其他好文 > 详细

VIJOS P1543极值问题

时间:2014-10-07 15:02:33      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:os   sp   div   问题   c   r   bs   程序   d   

已知m、n为整数,且满足下列两个条件:
① m、n∈1,2,…,K
② (n^ 2-mn-m^2)^2=1
编一程序,对给定K,求一组满足上述两个条件的m、n,并且使m^2+n^2的值最大。例如,若K=1995,则m=987,n=1597,则m、n满足条件,且可使m^2+n^2的值最大。

题解:

证明一下不是相邻fib的数不能成为该方程的解,也就不会干扰答案。利用反证法

 若 x,y满足题意  ,则gcd(x,y)=1 (从式子中可以明显看出来)
 若x==y  则 x=y=+-1 
若 x>y 设 x=y+z 则 (y+z,y)满足题意,易推出 (y,z)满足题意,
这样一直下去 正好是辗转相减的过程!(gcd(x,y)=gcd(y,x-y))
所以最后一定会推出 (x,1)满足题意
显然x!=1并且 x!=2
因为 由这样推出的符合题意的都是fib中连续的两项,而我们已经假设 x,y不是这样的数!
而如果 n=1,则解出 m=-2,-1,0,1;
         m=1,解出n=-1,0,1,2
而 x>0 显然不会有其他解,所以矛盾。

VIJOS P1543极值问题

标签:os   sp   div   问题   c   r   bs   程序   d   

原文地址:http://www.cnblogs.com/zyfzyf/p/4009141.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!