http://www.lydsy.com/JudgeOnline/problem.php?id=3621

题意:给两个三角形,问A能否通过旋转伸缩到B。

#include <bits/stdc++.h>
using namespace std;
struct cp {
static const double eps=1e-4;
double x, y;
cp(double _x=0, double _y=0) : x(_x), y(_y) {}
void scan() { scanf("%lf%lf", &x, &y); }
void P() const { printf("%.9f %.9f\n", x, y); }
cp operator - (const cp &a) { return cp(x-a.x, y-a.y); }
cp operator * (const cp &a) { return cp(x*a.x-y*a.y, x*a.y+y*a.x); }
cp operator / (const cp &a) { static double c; c=a.x*a.x+a.y*a.y; return cp((x*a.x+y*a.y)/c, (y*a.x-x*a.y)/c); }
bool operator == (const cp &a) { return abs(x-a.x)<eps && abs(y-a.y)<eps; }
}a[2][3], ans;
int vis[3], b[3];
bool check() {
static cp T, P;
T=(a[1][b[0]]-a[1][b[1]])/(a[0][0]-a[0][1]);
P=(a[1][b[0]]-a[0][0]*T)/(cp(1)-T);
if((a[0][2]-P)*T==a[1][b[2]]-P) {
ans=P;
return 1;
}
return 0;
}
bool dfs(int x) {
if(x==3) return check();
for(int i=0; i<3; ++i) if(!vis[i]) {
vis[i]=1; b[x]=i;
if(dfs(x+1)) return 1;
vis[i]=0;
}
return 0;
}
int main() {
int T;
scanf("%d", &T);
while(T--) {
for(int i=0; i<2; ++i)
for(int j=0; j<3; ++j)
a[i][j].scan();
memset(vis, 0, sizeof vis);
if(!dfs(0)) puts("-1");
else ans.P();
}
return 0;
}

  

复数乘法的几何意义就是极角相加,长度相乘。因此当做复平面来做就行辣= =

【BZOJ】3621: 我想那还真是令人高兴啊的更多相关文章

  1. BZOJ 3621: 我想那还真是令人高兴啊 计算几何 复数

    https://www.lydsy.com/JudgeOnline/problem.php?id=3621 给定两个三角形,其中一个可以通过以某点为中心旋转并放缩的方式得到另一个,求这个中心 http ...

  2. bzoj3621我想那还真是令人高兴啊

    bzoj3621我想那还真是令人高兴啊 题意: T组数据,每组给出两个三角形各点坐标,要求求出一个点使第一个三角形可以绕这个点放缩和旋转得到另一个三角形.T≤10,坐标为≤10000的实数,数据保证三 ...

  3. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  4. [No000003]现代版三十六计,计计教你如何做人

    <现代版三十六计,计计教你如何做人> …………………………………………………………………………………… 第1计施恩计 在人际交往中,见到给人帮忙的机会,要立马扑上去,像一只饥饿的松鼠扑向地 ...

  5. bzoj1021 [SHOI2008]Debt 循环的债务

    前天打了一场比赛,让我知道自己Dp有多弱了,伤心了一天,没刷bzoj. 昨天想了一天,虽然知道几何怎么搞,但我还是不敢写,让我知道自己几何有多弱了,伤心了一天,没刷bzoj 1021: [SHOI20 ...

  6. 【分享】改变未来的九大算法[pdf][清晰扫描版]

    [下载地址]http://www.colafile.com/file/1179688 图书信息:中文名: 改变未来的九大算法作者: 约翰·麦考密克译者: 管策图书分类: 软件资源格式: PDF版本: ...

  7. 简单却又复杂的FizzBuzz面试编程问题

    写这篇文章主要是因为偶然看到一篇关于stackoverflow公司的面经中提到了一个有趣的面试编程问题,如题所述:FizzBuzz问题.原文引用如下: “在一些公平的考验之后,我发现那些因为代码而抓狂 ...

  8. 翻译一篇关于jedis的文章

    翻译 自 http://www.baeldung.com/jedis-java-redis-client-libraryIntro to Jedis – the Java Redis Client L ...

  9. 洛谷.5300.[GXOI/GZOI2019]与或和(单调栈)

    LOJ BZOJ 洛谷 想了一个奇葩的单调栈,算的时候要在中间取\(\min\),感觉不靠谱不写了=-= 调了十分钟发现输出没取模=v= BZOJ好逗逼啊 题面连pdf都不挂了 哈哈哈哈 枚举每一位. ...

随机推荐

  1. 虚拟机Class文件结构笔记

    >>Java语言的平台无关性 Java是与平台无关的语言,“一次编写,到处运行”,这一方面依赖于Java源代码编译后生成的存储字节码的文件,即Class文件是语言和平台无关的: 另一方面依 ...

  2. win10下安装Ubuntu + 修复Ubuntu引导

    如何在已安装 Windows 10 的情况下安装 Linux(Ubuntu 15.04)双系统? - Microsoft Windows - 知乎http://www.zhihu.com/questi ...

  3. Pyqt QSystemTrayIcon 实现托盘效果

    pyqt的托盘效果很好实现,在Pyqt的demo中有个例子 路径:PyQt4\examples\desktop\systray.py 今天我就仿这个Tray效果做效果 一. 创建UI trayicon ...

  4. sdut 2449走迷宫【最简单的dfs应用】

    走迷宫 Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_ 题目描述 一个由n * m 个格子组成的迷宫,起点是(1, 1), 终点是(n, m) ...

  5. 无废话ExtJs 入门教程四[表单:FormPanel]

    无废话ExtJs 入门教程四[表单:FormPanel] extjs技术交流,欢迎加群(201926085) 继上一节内容,我们在窗体里加了个表单.如下所示代码区的第28行位置,items:form. ...

  6. forEach 方法 (Array) (JavaScript)

    为数组中的每个元素执行指定操作. 语法 array1.forEach(callbackfn[, thisArg]) 参数 参数 定义 array1 必选.一个数组对象. callbackfn 必选.最 ...

  7. 攻城狮在路上(肆)How tomcat works(二) 一个简单的servlet容器

    该节在上一节的基础上增加了所谓对静态资源和动态资源访问的不同控制流程.示例里面采用的是对路径“/servlet/”进行了特殊处理. 一. 主要还是从HttpServer1中的main方法开始,先解析出 ...

  8. RFC(请求注解)--各种协议-标准

    转自:http://blog.sina.com.cn/s/blog_65d6476a0101cj8n.html RFC(Request For Comments)-意即“请求注解”,包含了关于Inte ...

  9. PMP 第三章 单个项目的项目管理标准

    1 项目管理五大过程组分别是什么? 启动过程组 规划过程组 执行过程组 监控过程组 收尾过程组 2 启动项目组是干什么?包含哪些过程?每个阶段都需要启动吗? 启动过程组:获得授权,定义一个新项目或现有 ...

  10. 调整vbox虚拟机下的linux全屏模式及分辨率

    >>Step1 在VirtualBox菜单栏中选择[设备]->[安装增强功能] >>Step2 点击右上角的[齿轮]图标,然后选择[Log Out],重新登录即可 lin ...