对称点line
2 线
题⽬描述
有一天rax看到了男神,有时可爱美丽的她派ypq去把yyqx抓回来给rax欣赏,但ypq和yyqx间隔了一条线,她必须跳到yyqx以前待得点的对称点才有可能抓到yyqx
给出⼀条直线,在这过程中yyqx可能移动位置,于是进行n 组询问,每组询问yyqx的坐标,求这个点关于这条直线的 对称点,输出ypq围堵的位置。
可爱帅气的ypq翻山越岭的为rax找yyqx,历尽千辛万苦,路上她还幸运的遇到了zx和sln两位帅气逼人的强盗,只劫财不劫色,可怜的ypq,灰头土脸,兜比脸还干净的,向前走,没留意到前方的大沟,然后哈哈哈哈,最后她回到了rax的身边(ps.当然还带上了yyqx啦),然后他们三个人幸福的生活的在一起了。(赤果果的甜蜜三角恋)
输⼊输出格式
输⼊格式 第⼀⾏四个数 x1 , y1 , x2 , y2 , 描述⼀条线。之后⼀⾏⼀个数字 n, 接下来 n ⾏每⾏ 两个整数 x, y 表⽰⼀个点坐标,保证点不在直线上。 输出格式 输出 n ⾏,分别为输⼊给出点的对称点的坐标,误差不超过1e-3即可。 输⼊输出样例
样例1
样例2
0 0 1 1
1
1 0
输出:0.000 1.000
line.in line.out
0 1 2 5
2
1 1
3 10
输出 -0.600 1.800
5.400 8.800
数据范围
对于0%的数据,和样例⼀模⼀样 对于10%的数据,直线和样例1或2⼀样 对于另外10%的数据,n = 1 对于100%的数据,n <=10^5,任何点不在直线上,坐标的范围是[-1000,1000]
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int main()
{
/*freopen("line.in","r",stdin);
freopen("line.out","w",stdout);
*/
int ax,bx,cx,ay,by,cy,t,i;
double k,m,n,c,qx,qy;
scanf("%d %d %d %d",&ax,&ay,&bx,&by);
k = (double)(by - ay) / (bx - ax);
c = (double)by - k * bx;
m = (double)- / k;
scanf("%d",&t);
for(i = ;i <= t + ;i++)
{
scanf("%d %d",&cx,&cy);
n = (double)cy - m * cx;
qx = (double)(k * cx - cy + * c - n) / (m - k);
qy = (double)m * qx + n;
if(qx == -)
{
qx = ;
}
if(qy == -)
{
qy = ;
}
printf("%0.3lf %0.3lf\n",qx,qy);
} return ;
}
************
用解析几何,两点到直线的距离公式上方互为相反数导出来的。
哈哈哈
反击第一步
对称点line的更多相关文章
- hdu 2857 求点关于线段的对称点
本来很简单的一个题,但是有个大坑: 因为模板中Tline用到了直线的一般方程ax+by+c=0,所以有种很坑的情况需要特判: 斜率不存在啊喂 老子坑了一下午2333 #include <math ...
- HDU 5572 An Easy Physics Problem (计算几何+对称点模板)
HDU 5572 An Easy Physics Problem (计算几何) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5572 Descripti ...
- 「HDU - 2857」Mirror and Light(点关于直线的对称点)
题目链接 Mirror and Light 题意 一条直线代表镜子,一个入射光线上的点,一个反射光线上的点,求反射点.(都在一个二维平面内) 题解 找出入射光线关于镜子直线的对称点,然后和反射光线连边 ...
- hdu 2857:Mirror and Light(计算几何,点关于直线的对称点,求两线段交点坐标)
Mirror and Light Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Line Reflection -- LeetCode
Given n points on a 2D plane, find if there is such a line parallel to y-axis that reflect the given ...
- HDU 6631 line symmetric(枚举)
首先能想到的是至少有一对相邻点或者中间间隔一个点的点对满足轴对称,那么接下来只需要枚举剩下的点对是否满足至多移动一个点可以满足要求. 第一种情况,对于所有点对都满足要求,那么Yes. 第二种情况,有一 ...
- 2019牛客暑期多校训练营(第三场)H Magic Line
原题链接:H Magic Line 题意简述: 给定n个点,要求画一条直线将n个点分成均有n / 2个点的两部分,不能有点在线上: 解题思路: 首先,先将所有的点进行以x为第一关键字,y为第二关键字 ...
- ILJMALL project过程中遇到Fragment嵌套问题:IllegalArgumentException: Binary XML file line #23: Duplicate id
出现场景:当点击"分类"再返回"首页"时,发生error退出 BUG描述:Caused by: java.lang.IllegalArgumentExcep ...
- Error on line -1 of document : Premature end of file. Nested exception: Premature end of file.
启动tomcat, 出现, ( 之前都是好好的... ) [lk ] ERROR [08-12 15:10:02] [main] org.springframework.web.context.Con ...
随机推荐
- MySQL中的基本SQL语句
标准SQL包含了4种基本的语句类别: DDL语句,数据定义语句,主要用来定义数据库,表名,字段,例如create,drop,alter. DML语句,数据操作语句,用来对数据记录的增删改查,还用来保证 ...
- 03: Django Model数据库操作
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- vim 开启我们的Python之旅
1.在我们的Mac系统下打开“终端”,输入python,然后回车即可看到我们电脑是否安装了python,以及它的版本,这里我的是2.7.5版本,如果未安装请百度之.
- assert_param
在STM32的固件库和提供的例程中,到处都可以见到assert_param()的使用.如果打开任何一个例程中的stm32f10x_conf.h文件,就可以看到实际上assert_param是一个宏定义 ...
- VC++开机自动启动程序的几种方法 (转载)
转载:http://blog.csdn.net/zhazhiqiang/article/details/51909703 很多监控软件要求软件能够在系统重新启动后不用用户去点击图标启动项目,而是直接能 ...
- IDEA中使用.ignore插件忽略不必要提交的文件
使用的IDE是IntelliJ IDEA,发现IDEA在提交项目到本地仓库的时候,会把.idea文件夹中的内容也提交上去,这里面放的是一些项目的配置信息,包括历史记录,版本控制信息等.可以不传到Git ...
- nmap参数思维导图
链接:https://pan.baidu.com/s/1vD0A6olQbVNmCCirpHBm0w 提取码:o994
- 【安装防火墙】没有iptables时的解决办法
一.检查iptables服务状态 首先检查iptables服务的状态 [root@woxplife ~]# service iptables status iptables: Firewall is ...
- C# 查出数据表DataTable 清除一列中的重复项保留其他项
http://bbs.csdn.net/topics/391085792 DataTable 老表= 新表.AsEnumerable().GroupBy(p => p["姓名& ...
- Ubuntu 14.04 禁用ipv6
参考: 关闭IPV6,ubuntu 14.04 Ubuntu 14.04 禁用ipv6 1.检查ipv6是否开启: cat /proc/sys/net/ipv6/conf/all/disable_ip ...