zoukankan      html  css  js  c++  java
  • [CF743C]Vladik and fractions

    题目

    原题链接

    解说

    找来一些思维题练手,碰上了这一道,个人觉得挺有意思,写博客以记之。

    首先有(x,y,z)三个变量对于我们来说是非常不利的,因为很难进一步确定变量之间的关系。那么我们就要想办法先干掉一个变量。既然(x,y,z)都没有什么特殊要求,我们不妨构造出最简单的情况:

    不妨令

    [z=n ]

    则有

    [frac{1}{x}+frac{1}{y}=frac{1}{n} ]

    我们的式子里只有两个变量了,很容易进一步确定它们之间的关系:

    [y=frac{n cdot x}{x-n} ]

    再一次,既然(x,y,z)没什么特殊要求,不妨令(x=n+1)使我们的工作更加简单。将(x=n+1)代入上式便可以得到:

    [y=n^2+n ]

    至此,我们就已经确定了这个方程的一组特解:

    [egin{cases} x=n+1 \ y=n^2+n\ z=n end{cases}]

    提交之后欢迎直接开门红!

    我们来思考一下哪里出问题了……题目中无解的情况似乎没有用到。那么在什么时候(x,y,z)会无解呢?这时我们又注意到题目中的一个条件(x eq y eq z)。简单地解个方程就会发现(n=1)(n+1=n^2+n),我们的特解不符合要求,因此我们猜测(n=1)时原方程无解。但是我们应当进行严谨的证明。

    证明:因为(x,y,z in N^{+})(frac{1}{x}+frac{1}{y}+frac{1}{z}=2),所以(x,y,z)中必然有且只有一者为(1)(可以假设若(x,y,z)均不为(1),则(frac{1}{x}+frac{1}{y}+frac{1}{z})最大只能为(frac{3}{2});若(x,y,z)中有不止一个为(1),则(frac{1}{x}+frac{1}{y}+frac{1}{z})肯定大于(2))。

    所以不妨令(z=1),则

    [frac{1}{x}+frac{1}{y}=1 ]

    [frac{1}{y}=frac{x-1}{x} ]

    因为右边的分子必须可以约分为(1),所以(gcd(x-1,x)=x-1),但(forall x in N^{+},gcd(x-1,x)=1),所以(x)只能为(2),但将(x=2)代入(x)(y)的关系式可得(y=2),不符合(x eq y),所以(n=1)时原方程无解。

    [Q.E.D. ]

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
    	int n;
    	scanf("%d",&n);
    	if(n==1) printf("-1
    ");
    	else printf("%d %d %d
    ",n,n+1,n*n+n);
    	return 0;
    }
    
  • 相关阅读:
    记录一次在 VirtualBox的添加共享windows文件后,发现没有共享文件的事
    linux 压缩解压缩命令
    关于erlang中的timer:tc/3
    python基础:while循环,for循环
    grep和正则表达式参数
    grep和正则表达式
    nginx反向代理三台web
    安装nginx包
    部署samba
    samba了解
  • 原文地址:https://www.cnblogs.com/DarthVictor/p/13429502.html
Copyright © 2011-2022 走看看