Luogu P4894 【GodFly求解法向量】

个人感觉我的解法比官方题解好理解得多

因为是任意一个法向量嘛,不妨设$x=1$

然后解一个二元一次方程就可以解决了

但是因为要求输出三个整数

 



代码

#include<iostream>
#include<cstdio>
#include<algorithm>
#define int long long
using namespace std;
int x1,y1,z1,x2,y2,z2,x,y,z;
signed main()
{
    while(scanf("%lld%lld%lld%lld%lld%lld",&x1,&y1,&z1,&x2,&y2,&z2)==6)
    {
        x=(y2*z1-y1*z2)*y2;
        z=(y1*x2-x1*y2)*y2;
        y=-x2*(y2*z1-y1*z2)-z2*(y1*x2-x1*y2);
        int g=__gcd(x,__gcd(y,z));
        x/=g,y/=g,z/=g;
        //这两句gcd取最小值用的,因为怕解出来爆long long
        printf("%lld %lld %lld\n",x,y,z);
    }
    return 0;
}

 

posted @ 2018-09-27 10:27  Ivanovcraft  阅读(179)  评论(2编辑  收藏  举报