zoukankan      html  css  js  c++  java
  • 10250 The Other Two Trees

    http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1191

    其实就是直角坐标系中有个正方形,给了对角的两个顶点的坐标,求另外两个顶点的坐标.

    刚开始想了好长时间,想到了以前的几何方法,不就是解方程嘛,哎,计算机太笨,你写给它它不认识.......还是人类聪明啊!

    用几何的方法,比如,可以得到两点的中垂线,然后就是在那条直线上取两点使得离中点的距离为一个值(这个值很容易啦).可是难道在直线上for循环?++?还是+0.1?反正确定不了点.

    然后网上看了一下别人的.领悟了:

    要求这两个点,枚举这两个点肯定是行不通的,只能利用点之间的关系了,直角坐标系,最好的就是和坐标系平行的线了,只要知道了距离,这条线上的点很容易确定.于是有了全等三角形.

    下图:

    这样就简单了:

    #include <stdio.h>
    
    int main(void)
    {
        double x1,y1,x2,y2;
        while (scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2)!=EOF)
        {
            if (x1==x2&&y1==y2)
            {
                printf("Impossible.\n");
            } 
            else
            {
                double x3,y3,x4,y4,x,y;
                x=(x1+x2)/2,y=(y1+y2)/2;
    
                y3=x-x1+y;
                x3=y1-y+x;
                y4=y+x-x2;
                x4=x-y+y2;
    
                printf("%.10f %.10f %.10f %.10f\n",x3,y3,x4,y4);
            }
        }
        return 0;
    }
  • 相关阅读:
    Permutations II
    N-Queens II
    Palindrome Number
    Minimum Path Sum
    JS的DOM操作2
    JS 的DOM操作
    函数概念
    JavaScript数组
    JavaScript循环及练习
    JS语言
  • 原文地址:https://www.cnblogs.com/jiayith/p/3060942.html
Copyright © 2011-2022 走看看