51nod1265 四点共面

题目链接:51nod 1265 四点共面

四个点构成的三个向量a,b,c共面的充要条件是存在不全为零的实数x,y,z满足x*a+y*b+z*c=0,然后想到线代了..

其实就是三个向量的混合积为0:(a,b,c)=(a×b)·c=

|ax ay az|

|bx by bz|  =  ax*by*cz+ay*bz*cx+bx*cy*az-az*by*cx-ay*bx*cz-ax*bz*cy = 0;

|cx cy cz|

看到行列式我就想到线性代数快考试了,然而我还没预习~~~(>_<)~~~

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 struct Point{
 6     int x,y,z;
 7 }p[3];
 8 int main(){
 9     int t, i, k;
10     int x,y,z;
11     int ax,ay,az,bx,by,bz,cx,cy,cz;
12     scanf("%d", &t);
13     for(k = 1; k <= t; ++k){
14         scanf("%d%d%d",&x,&y,&z);
15         for(i = 0; i < 3; ++i)
16             scanf("%d%d%d",&p[i].x,&p[i].y,&p[i].z);
17         ax=p[0].x-x; ay=p[0].y-y; az=p[0].z-z;
18         bx=p[1].x-x; by=p[1].y-y; bz=p[1].z-z;
19         cx=p[2].x-x; cy=p[2].y-y; cz=p[2].z-z;
20         if(ax*by*cz+ay*bz*cx+bx*cy*az-az*by*cx-ay*bx*cz-ax*bz*cy == 0)
21             puts("Yes");
22         else puts("No");
23     }
24     return 0;
25 }
View Code

 

posted @ 2016-10-29 23:01  GraceSkyer  阅读(507)  评论(0编辑  收藏  举报

~~~~~~ACM大牛语录,激励一下~~~~~~

为了世界的和平,为了女生的安全,我拼命做题,做题,做题!

用最短的时间,刷最多的题!

给我一滴泪,我就看到了你全部的海洋!

seize the hour, seize the day.

人生难免有无奈,幸福走远了,或是感叹幸福来迟了.其实我一直相信,无论手中的幸福是多么微不足道的感觉,我会把握住那每一分,每一秒,当幸福依旧像那百鸟般飞逝,终究无法掌握时,我会感谢它,曾经降临过!

A自己的题,让别人郁闷去吧

WA肠中过,AC心中留 TLE耳边过,AC特别牛

天然的悲苦和伤逝,过去有过,以后还会有

^*^一步一步往上爬^*^

AC就像练级,比赛就像PK. 练级不如PK好玩

其实,世上本没有ACM,AC的人多了,也便有了!

AC无止尽~ Seek you forever~

找呀找呀找水题,找到一个AC一个呀!

AC是检验程序的唯一标准。

真的猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血……