• 北邮OJ 85. Three Points On A Line


    关于证明三点共线的方法

    方法一:取两点确立一条直线,计算该直线的解析式 .代入第三点坐标 看是否满足该解析式 (直线与方程). 
    方法二:设三点为A、B、C .利用向量证明:λAB=AC(其中λ为非零实数). 
    方法三:利用点差法求出AB斜率和AC斜率,相等即三点共线. 
    方法四:用梅涅劳斯定理. 
    方法五:利用几何中的公理“如果两个不重合的平面有一个公共点,那么它们有且只有一条过该点的公共直线”.可知:如果三点同属于两个相交的平面则三点共线. 
    方法六:运用公(定)理 “过直线外一点有且只有一条直线与已知直线平行(垂直)”.其实就是同一法. 
    方法七:证明其夹角为180°. 
    方法八:设A B C ,证明△ABC面积为0. 
    方法九:帕普斯定理. 
    方法十:利用坐标证明。即证明x1y2=x2y1. 
    方法十一:位似图形性质.

     
    显然用斜率方法
    //三点共线 
    #include <stdio.h>
    
    int main()
    {
        int T,N,i,j,k;
        double x[101],y[101];
        scanf("%d",&T);
        while(T--)
        {
            int count = 0;
            scanf("%d",&N);
            for(i = 0;i < N;i++)
               scanf("%lf %lf",x + i,y + i);
            for(i = 0;i < N && !count;i++)
                for(j = i + 1;j <N && !count;j++)
                   for(k = j + 1;k <N && !count;k++)
                   {
                       if((y[k]-y[i])/(x[k]-x[i]) == (y[j]-y[i])/(x[j]-x[i]))
                          count = 1;
                   }
            if(count)
               printf("Yes
    ");
            else
               printf("No
    ");
        }
        return 0;
    }
     
     
     
  • 相关阅读:
    JS高级-虚拟DOM
    JS高级-异步
    tomcat server.xml中文版
    java中的等于
    eclipse version
    angularjs中父,子,兄之间controller值得传递
    《那一天,那一月,那一年,那一世》-------仓央嘉措
    用jsonp格式的数据进行ajax post请求变成get
    git常用指令
    让div支持placeholder属性/模拟输入框的placeholder属性
  • 原文地址:https://www.cnblogs.com/lipching/p/6406332.html
Copyright © 2020-2023  润新知