Scrooge’s Tower


.
.
.
.
题意:园内有两个点,问这两个点是否出现在圆的内接正方形内
.
.
.
解法:一开始我们队想到通过旋转圆来看看两个点能否同时被转到内接圆上,因为内接正方形只设定一个。但是发现通过三角函数来旋转误差太大了,一直wa。然后改用直接计算内接正方形计算每个定点旋转后的相交点(4或8个),然后通过叉乘来判断两个向量的夹角是否和原来的相同,就过了。
.
.
.

#include <iostream>
#include <math.h>
#include <algorithm>
using namespace std;int tt, n;
double r;
struct Node {double x, y;
}a, b;double sqr(double x) {return x*x;
}double len(Node& t) {return sqrt(sqr(t.x)+sqr(t.y));
}double cheng(Node& t1, Node& t2) {return (t1.x*t2.y-t1.y*t2.x);
}const int d[4][2] = {{1, 1}, {1, -1}, {-1, 1}, {-1, -1}};int main() {cin >> tt;while (tt--) {cin >> r >> a.x >> a.y >> b.x >> b.y;if (len(a)-r/sqrt(2) < -1e-9 || len(b)-r/sqrt(2) < -1e-9) {cout << "NO" << endl;continue;}double t = cheng(a, b);Node temp1, temp2;temp1.y = r/sqrt(2);temp1.x = sqrt(sqr(len(a))-sqr(temp1.y));temp2.y = r/sqrt(2);temp2.x = sqrt(sqr(len(b))-sqr(temp2.y)); bool flag = false;for (int i = 0; i < 4; i++)for (int j = 0; j < 4; j++) {temp1.x *= d[i][0];temp1.y *= d[i][1];temp2.x *= d[j][0];temp2.y *= d[j][1];if (fabs(cheng(temp1, temp2) - t) < 1e-5) flag = true;swap(temp1.x, temp1.y);if (fabs(cheng(temp1, temp2) - t) < 1e-5) flag = true;swap(temp2.x, temp2.y);if (fabs(cheng(temp1, temp2) - t) < 1e-5) flag = true;swap(temp1.x, temp1.y);if (fabs(cheng(temp1, temp2) - t) < 1e-5) flag = true;swap(temp2.x, temp2.y);temp1.x *= d[i][0];temp1.y *= d[i][1];temp2.x *= d[j][0];temp2.y *= d[j][1];             }if (flag) cout << "YES" << endl;else cout << "NO" << endl;}
}

Scrooge's Tower相关推荐

  1. dwarf tower

    [问题描述] Vasya在玩一个叫做"Dwarf Tower"的游戏,这个游戏中有n个不同的物品, 它们的编号为1到n.现在Vasya想得到编号为1的物品. 获得一个物品有两种方式 ...

  2. Codeforces Gym 100269 Dwarf Tower (最短路)

    题目连接: http://codeforces.com/gym/100269/attachments Description Little Vasya is playing a new game na ...

  3. 如何攻克异地协作难题?看 Tower 的 72 个月远程工作实践

    12 月 9 日,TGO 鲲鹏会武汉分会成功组织了第一次小组活动.在此次小组活动中,Tower 联合创始人 & TGO 鲲鹏会武汉分会会员徐峥带来了<Tower 团队 72 个月远程协作 ...

  4. The Magic Tower

    The Magic Tower Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  5. C++Tower of Hanoi汉诺塔的实现算法(附完整源码)

    C++Tower of Hanoi汉诺塔的实现算法 C++Tower of Hanoi汉诺塔的实现算法完整源码(定义,实现,main函数测试) C++Tower of Hanoi汉诺塔的实现算法完整源 ...

  6. 制作精良、意犹未尽的异色推理小剧场《Tangle Tower 缠结塔》

    老谜牛啤! 不知道从什么时候开始,看谜之声玩各种乱七八糟.稀奇古怪的新游戏已经变成了我每周的功课.这次想拿来讲一讲的<Tangle Tower缠结塔>也是19年看老谜挖起来的宝之一. 拓展 ...

  7. 3-6-汉诺塔(Hanoi Tower)问题-栈和队列-第3章-《数据结构》课本源码-严蔚敏吴伟民版...

    课本源码部分 第3章  栈和队列 - 汉诺塔(Hanoi Tower)问题 --<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接☛☛☛ <数据结构-C语言版> ...

  8. [数论系列一]C Looooops,跳跳棋,The Luckiest number,CF906D Power Tower,Minimal Power of Prime,仪仗队,LCMSUM

    文章目录 C Looooops description solution code 跳跳棋 description solution code The Luckiest number descript ...

  9. 【HDU - 5886】Tower Defence(树的直径,思维,dp)

    题干: There was a civil war between two factions in Skyrim, a province of the Empire on the continent ...

最新文章

  1. 2016-04-28
  2. linux mysql远程连接其他服务器_Linux服务器中MySQL远程连接的开启方法
  3. 2020年第十五届竞赛数据上报竞赛数据给高等教学学会统计
  4. nginx日志自动切割
  5. Android-JSNative交互的几种可行性方案H5白屏问题解决方式
  6. boost解析info文件
  7. python FTP服务器实现(Python3)
  8. linux下mysql解压包安装
  9. 和平精英体验服服务器更新维护什么意思,和平精英8月9日体验服官方申请地址 和平精英更新6项内容需要多注意!和平精英8月9日更新时间确定...
  10. 程序员有了孩子,老大叫玲玲,老二叫玲依,老三叫...
  11. DMA与cache一致性的问题
  12. word如何快速找到自己需要的符号/特殊符号?(干货满满)
  13. 毁灭者DC W650DC装黑苹果心得
  14. 不要迷信微服务,微服务就是个传说
  15. Talib中文文档(二):Momentum Indicators 动量指标
  16. 深度学习 Ai 换脸
  17. 第三章:fog(恐惧感 fear,责任感obligation,罪恶感guilty)
  18. segment的理解
  19. 产品经理的职责-----产品经理深入浅出课程
  20. 网吧无盘软件linux,网众无盘linux在使用中常见的10个问题

热门文章

  1. android rtorrent 编译,rTorrent (简体中文)
  2. jenkins汉化一部分问题(一半中文一半英文)解决
  3. 汇编语言LEA和OFFSET区别
  4. [转]爆肝一周,完成了一款第一人称3D射击游戏,现在把源代码分享给大家,适合新手跟着学习
  5. C语言 函数返回字符串的方法
  6. Go:UTF8与GBK转换
  7. Python opencv连通域
  8. 第一座月球核电站明年问世
  9. k8s教程(pod篇)-优先级调度
  10. 为什么楼主知道“菩提本无树”,却还在喊着“人生之不如意十有八九”