Content

给出平行四边形的三个顶点 \((x_1,y_1),(x_2,y_2),(x_3,y_3)\),求出所有可能的第四个顶点。

数据范围:\(\forall i\in[1,3],-1000\leqslant x_i,y_i\leqslant 1000\)。

Solution

这题可以通过平行四边形的一个性质轻松搞定——平行四边形的对角线互相平分

啥啥啥?你还不知道什么是平行四边形?

因为太占空间,去这里看吧qwq。

那么用这个有什么用呢?

我们都知道,一条线段 \(AB\) 的中点计算公式是 \((\dfrac{x_A+x_B}{2},\dfrac{y_A+y_B}{2})\),那么我们来看到下面这个平行四边形:

那么,我们通过上面这个平行四边形的性质可以得到,\(AC\) 和 \(BD\) 的中点是同一个点。那么我们就有:

\[\begin{cases}\dfrac{x_A+x_C}{2}=\dfrac{x_B+x_D}{2}&...(1)\\\dfrac{y_A+y_C}{2}=\dfrac{y_B+y_D}{2}&...(2)\end{cases}
\]

将 \((1)\) 式和 \((2)\) 式分别都乘上 \(2\)可以得到:\(x_A+x_C=x_B+x_D,y_A+y_C=y_B=y_D\)。

所以,现在假设 \(A,B,C\) 三个点为题目中的已知点,那么第四个点 \(D\) 可以有以下几种:

我们可以通过计算得到:

\(D_1(x_A+x_C-x_B,y_A+y_C-y_B)\)

\(D_2(x_A+x_B-x_C,y_A+y_B-y_C)\)

\(D_3(x_B+x_C-x_A,y_B+y_C-y_A)\)

我们可以发现,有且仅有以上这三个点符合要求。因此,满足点的个数为 \(3\),坐标直接按照上面的公式输出即可(顺序可以任意)。

Code

#include <cstdio>
#include <algorithm>
#include <iostream>
using namespace std; int x1, y1, x2, y2, x3, y3; int main() {
scanf("%d%d%d%d%d%d", &x1, &y1, &x2, &y2, &x3, &y3);
printf("3\n%d %d\n%d %d\n%d %d", x2 + x3 - x1, y2 + y3 - y1, x1 + x3 - x2, y1 + y3 - y2, x1 + x2 - x3, y1 + y2 - y3);
}

CF749B Parallelogram is Back 题解的更多相关文章

  1. Parallelogram Counting(平行四边形个数,思维转化)

    1058 - Parallelogram Counting    PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit ...

  2. 【codeforces 749B】Parallelogram is Back

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  3. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  4. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  5. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  6. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  7. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  8. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  9. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

随机推荐

  1. 【Linux】(1)安装

    VMware虚拟机安装Linux,IP地址显示为127.0.0.1的解决方案 ① 打开该虚拟机,点击导航栏"虚拟机(M)",选择"设置(S)..." ② 将&q ...

  2. git添加新工程

    git init git remote add origin 码云路径 git pull origin master 代码拉本地后 git add . git commit -m '新添加的文件内容描 ...

  3. Atcoder Grand Contest 024 E - Sequence Growing Hard(dp+思维)

    题目传送门 典型的 Atcoder 风格的计数 dp. 题目可以转化为每次在序列中插入一个 \([1,k]\) 的数,共操作 \(n\) 次,满足后一个序列的字典序严格大于前一个序列,问有多少种操作序 ...

  4. 洛谷 P5902 [IOI2009]salesman(dp)

    题面传送门 题意: 有 \(n\) 个展销会,每个展销会给出它的时间 \(t_i\),举办展销会的位置 \(l_i\),和参加这个展销会你能得到的收益 \(m_i\). 你现在在位置 \(s\),你可 ...

  5. Atcoder Grand Contest 032 E - Modulo Pairing(乱搞+二分)

    Atcoder 题面传送门 & 洛谷题面传送门 神仙调整+乱搞题. 首先某些人(including me)一看到最大值最小就二分答案,事实上二分答案对这题正解没有任何启发. 首先将 \(a_i ...

  6. IOI 2020 国家集训队作业

    \(\checkmark\) 试题一 完成情况 试题二 完成情况 试题三 完成情况 cf549E cf674G arc103_f \(\checkmark\) cf594E agc034_f agc0 ...

  7. 【比较基因组】McScan jcvi比较两个基因组共线性细节记录

    目录 软件的安装 基因组的准备 一些细节 建议和示例 软件的安装 Python版McScan(jcvi工具包):https://github.com/tanghaibao/jcvi 以前只有pytho ...

  8. tabix 操作VCF文件

    tabix 可以对NGS分析中常见格式的文件建立索引,从而加快访问速度,不仅支持VCF文件,还支持BED, GFF,SAM等格式. 下载地址: 1 https://sourceforge.net/pr ...

  9. 64-Unique Binary Search Trees

    96. Unique Binary Search Trees My Submissions Question Editorial Solution Total Accepted: 82788 Tota ...

  10. 谈谈AI

    由AI大作业想到的 近几年<人工智能导论>的大作业是编写一个博弈程序,这类程序的典型框架就是α-β剪枝算法,像著名的打败了国际象棋大师卡斯帕罗的深蓝,就是这么干的,一些中国象棋程序也是这样 ...