题解 CF1076C 【Meme Problem】

ε祈祈猫儿з 提交于 2019-11-27 21:40:39

之前排版炸了,麻烦重新审核

题目让求这个二元二次方程组:

\[ \begin{cases} m+n=d\\ mn=d \end{cases} \]

想到韦达定理,于是构造了这个方程(其中\(m\),\(n\)是这个方程的两个根)

\[ ax^2+bx+c=0 \]

其中\(d=-\frac{b}{a}=\frac{c}{a}\)(根据韦达定理)

将方程两边同除以\(a\),得:

\[ x^2+\frac{b}{a}x=-\frac{c}{a} \]

观察一下,想到配方这样就能将\(x\)降次

\[ x^2+\frac{b}{a}x+(\frac{b}{2a})^2=-\frac{c}{a}+(\frac{b}{2a})^2 \]

\[ (x+\frac{b}{2a})^2=-\frac{c}{a}+\frac{b^2}{4a^2} \]

于是我们就能开心的将它变为一次:

\[ x=\pm\sqrt{-\frac{c}{a}+\frac{b^2}{4a^2}}-\frac{b}{2a} \]

再把\(-\frac{b}{2a}\)套到根号里面去

\[ x=\pm\sqrt{-\frac{4ac}{4a^2}+\frac{b^2}{4a^2}}-\frac{b}{2a} =\frac{\pm\sqrt{b^2-4ac}-b}{2a} \]

终于,我们算出了答案

\[ \begin{cases} m=\frac{\sqrt{b^2-4ac}-b}{2a}\\\ n=\frac{-\sqrt{b^2-4ac}-b}{2a} \end{cases} \]

此时还有一个问题,就是将\(a\),\(c\),\(b\)\(d\)来表示

得出方程

\[ \begin{cases} -\frac{b}{a}=d\\\ \frac{c}{a}=d \end{cases} \]

此时,我们不妨设\(a=1\),你设什么都没问题的,\(1\)好算QWQ

于是乎:

\[ \begin{cases} a=1\\\ b=-d\\\ c=d \end{cases} \]

让我们来愉快地带入吧:

\[ \begin{cases} m=\frac{\sqrt{d^2-4d}+d}{2}\\\ n=\frac{-\sqrt{d^2-4d}+d}{2} \end{cases} \]

大家都知道,在实数范围内根号下不能是负数

得出结论

\(d^2-4d\ge0\)时,有解

\(d^2-4d<0\)时,无解

code(说实话,我是敲完题解再去写代码的):

#include<cstdio>
#include<cmath>
#define F double
int t,d;
int main(){
    scanf("%d",&t);
    while(t--){
        scanf("%d",&d);
        if(int(sqrt(pow(d,2)-4*d))<0){//注意,这里要转int
            printf("N\n");
        }else{
            printf("Y ");
            printf("%.9lf %.9lf\n",F(F(sqrt(pow(d,2)-4*d)+d)/2),F(F(-sqrt(pow(d,2)-4*d)+d)/2));
        }
    }
    return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!