sicily 1070 Hansel and Grethel 解题报告

summary

:

好久没刷题了,就去水题集里面挑了道水题做,居然绞尽脑汁想不出来,后来还是百度了一下, 发现网上有关这道题的博客一篇都没有,于是,google,终于找到了一篇!看注释:

求两直线的交点,交点必存在 。

我真的是太水了,可能天生就是这么笨,这样都想不到。于是不看他的代码,自己研究了一下, 结果............还是不会!无奈之下,看人家的代码吧......看了代码,很短,自卑了一下, 再看程序的核心,完全不懂!我差点羞愧而死......又研究了这份代码许久,终于是放弃了。 于是加了博主的QQ,博主人真的好,特地加了详细的注释,一看注释的内容就有种被鄙视的感觉。 我居然连斜率,斜截式这些高中数学最简单的东西都忘了!!难道是项目做得太多,变笨了吗? 难道是我根本就没有搞ACM的天赋吗?不管了,看了好久注释,总算是明白了, 也从中学到了很多东西,也从心里感受到了数学对于计算机是多么重要。

代码:

#include <stdio.h>
#include <math.h>

#define PI acos(-1.0)

int main()
{
    int t;
    double x1,y1,d1,x2,y2,d2;
    double x,y,k1,k2;
    int i;

    scanf("%d", &t);
    for(i = 0; i < t; i++){
        scanf("%lf %lf %lf", &x1,&y1,&d1);
        scanf("%lf %lf %lf", &x2,&y2,&d2);
        k1 = tan((90-d1)*PI/180);
        k2 = tan((90-d2)*PI/180);
        x = (y2 - y1 + k1 * x1 - k2 * x2) / (k1 - k2);
        y = (k1 * k2 * x2 - k1 * k2 * x1 + k2 * y1 - k1 * y2) / (k2 - k1);
        printf("%.4lf %.4lf\n", x,y);
    }

    return 0;
}