zoukankan      html  css  js  c++  java
  • 模考题line

    题目描述(哈哈哈我把题改的面目全非)

    sln和zx是坐标轴上两个有位置的点,她们手拉手连成了一条线。已知坐标,ypq线的一端,她想跳过这条线只有一种跳法,就是跳到自己关于线的对称点上,请问她应该骗rax站在哪里,才能刚好跳到她头上。哈哈哈哈哈哈哈我要笑疯了,rax看到了千万别打我

    输入1 

    0 0 1 1

    1

    1 0

    输出1

    0.000 1.000

    输入2

    0 1 2 5

    2

    1 1

    3 10

    输出2

    -0.600 1.800

    5.400 8.800

    这是正经的题解:我用了相似,然后导呀导呀就导出来了用了

    正解好像用了向量集合?其他人好像用了解析集合·

    大家不要相信下面这些代码,在洛谷至今上只过了一个点......

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int main()
    {
        freopen("line.in","r",stdin);
        freopen("line.out","w",stdout);
        double ax,ay,bx,by,cx,cy;
        int n;
        scanf("%lf%lf%lf%lf",&ax,&ay,&bx,&by);
        double a = (ay - by) / (bx - ax),b = 0 - ay - a * ax;//求解析式 
        double x = abs(ax - bx),y = abs(ay - by),xie = sqrt(x * x + y * y);    //各边长度比 
        scanf("%d",&n);
        for(int i = 1;i <= n;i++)
        {
            scanf("%lf%lf",&cx,&cy);
            double dx,dy,juli;
            juli = abs(a * cx + cy + b) / sqrt(a * a + 1);//点到直线距离 
            double xx = (0 - b - cy) / a,yy = 0 - b - a * cx;//决定横纵坐标是增大还是减小 
            if(xx > cx){
                dx = cx + 2 * juli * (y / xie);
            }
            else{
                dx = cx - 2 * juli * (y / xie);
            }
            if(yy > cy){
                dy = cy + 2 * juli * (x / xie);
            }
            else{
                dy = cy - 2 * juli * (x / xie);
            }
            printf("%0.3f %0.3f",dx,dy);
        }
        return 0;
    }

    想我考试时竟然没删freopen前的斜杠,然后就爆零了......

  • 相关阅读:
    我觉得总结的不错的entityFramework
    vs2013引入com组件后,发布时如何提取出dll文件
    win10创建扩展分区
    web.config配置
    mysql时间增加一年
    json介绍
    phpcms列表分页ajax加载更多
    phpcms批量更新内容页只更新一点就返回问题
    phpcms不能批量更新栏目页和内容页
    iis设置默认文档,提示web.config配置xml格式不正确
  • 原文地址:https://www.cnblogs.com/yupeiqi/p/8463322.html
Copyright © 2011-2022 走看看