HihoCoder 1570 : 小Hi与法阵(简单几何)
描述
小Hi喜欢大,而小Ho喜欢小。他们所在的城市(视为二维平面)有N座法阵。现在他们各选三座法阵,以三座法阵为顶点组成三角形,并站在所选三角形的重心位置;二人选择的法阵可以有相同的。小Hi选择面积最大的三角形,小Ho选择面积最小的三角形。若有多个面积相同且符合他们要求的三角形,小Hi选择重心横坐标最大的,若重心横坐标相同,则选择重心纵坐标最大的;小Ho选择重心横坐标最小的,若重心横坐标相同,则选择重心纵坐标最小的。
现在两人需要见面,两人均可以在城市里以不超过U的速度向任意方向移动,问他们两个最少经过多长时间可以相会?
例如下图中的例子,共六座法阵,分别为A,B,C,D,E,F,则小Hi位于三角形ABC的重心G上,小Ho位于三角形DEF的重心H上。

注意两人选择的三座法阵必须能组成三角形,不能是共线的。
输入
输入包含多组数据,第一行包含一个数字T,代表数据组数。1<=T<=10
对于每组数据:
第一行为两个整数N、U,分别代表法阵数量和最高移动速度。3<=N<=50,1<=U<=10
接下来N行,每行两个整数Xi和Yi,代表第i所法阵的横纵坐标。-300<=Xi,Yi<=300。
输入保证法阵位置不同。
输出
对于每组数据,输出一行,包含一个数字,代表相会时间,四舍五入保留到小数点后2位。
样例输入
1
3 1
0 10
-10 0
10 5
样例输出
0.00
- 面积可以用向量法或者海伦公式求。
- 判断是否共线,不能直接用斜率相同。解决方案是1,特判y轴相同。2,把除法变为乘法。3,向量法求得的面积为0。
- 用整数避开浮点数的误差。
//向量法
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=;
const int inf=;
int x[maxn],y[maxn];
int get_S(int i,int j,int k)
{
return abs((x[j]-x[i])*(y[k]-y[i])-(x[k]-x[i])*(y[j]-y[i]));
}
int main()
{
int x1,y1,x2,y2;
int Min,Max;
int i,j,k,n,u,T;
scanf("%d",&T);
while(T--){
Min=inf;Max=-inf;
x1=;y1=inf;x2=;y2=inf;
scanf("%d%d",&n,&u);
for(i=;i<=n;i++) scanf("%d%d",&x[i],&y[i]);
for(i=;i<=n;i++)
for(j=i+;j<=n;j++)
for(k=j+;k<=n;k++){
int tmp=get_S(i,j,k);
if(tmp==) continue;
int tx=(x[i]+x[j]+x[k]),ty=(y[i]+y[j]+y[k]);
if(tmp<Min||(tmp==Min&&tx<x1)||(tmp==Min&&tx==x1&&ty<y1)) { Min=tmp;x1=tx;y1=ty;}
if(tmp>Max||(tmp==Max&&tx>x2)||(tmp==Max&&tx==x2&&ty>y2)) { Max=tmp;x2=tx;y2=ty;}
}
double dx=(x1-x2)/3.0,dy=(y1-y2)/3.0;
printf("%.2lf\n",sqrt(dx*dx+dy*dy)/u/2.0);
}return ;
}
HihoCoder 1570 : 小Hi与法阵(简单几何)的更多相关文章
- hihoCoder 1385 : A Simple Job(简单工作)
hihoCoder #1385 : A Simple Job(简单工作) 时间限制:1000ms 单点时限:1000ms 内存限制:256MB Description - 题目描述 Institute ...
- hihocoder#1513 : 小Hi的烦恼 bitset
目录 题目链接 题解 代码 题目链接 hihocoder#1513 : 小Hi的烦恼 题解 cdq 套cdq 套cdq 套cdq就完了呀 对每一科开n个bitset 表示该科目前i个有谁 每次查询都& ...
- C#俄罗斯方块小游戏程序设计与简单实现
C#俄罗斯方块小游戏程序设计与简单实现 相信90后或者80后都玩过这款小游戏,一直想干一票,琢磨一下,但又不太懂,于是网上搜集修改就有了以下效果!bug较多,多多包涵! 1.效果展示 2.实现方法 参 ...
- hihoCoder 1513 小Hi的烦恼
hihoCoder 1513 小Hi的烦恼 思路: 用bitset判断交集个数 代码: #include<bits/stdc++.h> using namespace std; #defi ...
- Python下opencv使用笔记(二)(简单几何图像绘制)
简单几何图像一般包含点.直线.矩阵.圆.椭圆.多边形等等.首先认识一下opencv对像素点的定义. 图像的一个像素点有1或者3个值.对灰度图像有一个灰度值,对彩色图像有3个值组成一个像素值.他们表现出 ...
- 小工具:天气查询 Vs自定义设置 DevGridControl中GridView排序问题 小工具:火车票查询 小工具:邮件发送 小工具:截图&简单图像处理
小工具:天气查询 开发一个天气查询的工具主要由两步构成,一是数据的获取,二是数据的展示. 一.数据获取 数据获取又可以分为使用其它公司提供的API和手动抓取其它网站数据. 1. 某公司提供的AP ...
- 微信小程序 wxs的简单应用
Demo地址:微信小程序wxs的简单应用 案例分析 张三.李四.王五,各自分别都有数量不等的车,现在需要列表显示名字及他们拥有车的数量, list数据结构如下,当我们使用wx:for进行显示时,发现个 ...
- Codeforces 935 简单几何求圆心 DP快速幂求与逆元
A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #def ...
- JavaScript小游戏实例:简单的键盘练习
键盘是一种常用的输入设备,灵活熟练地使用键盘进行输入是计算机用户需掌握的一门基本功.下面我们编写一个简单的键盘练习游戏. 1.刺破气泡交互式小动画 在编写简单的键盘练习游戏之前,先设计一个简单地刺破气 ...
随机推荐
- iOS -- SpriteKit框架之SKPhysicsBody的移动和连接
SKPhysicsBody的受力移动 SKPhysicsBody对象不同于SKSpriteNode对象.SKSpriteNode对象可以通过添加动作来进行移动,SKPhysicsBody对象却没有 ...
- Cocos2d-X中Menu的综合运用
今天将曾经写的代码和项目集成到了一个菜单中,能够通过菜单切换到曾经做的项目 程序的project文件夹 主要代码分析: LessonMenu.h中实现创建菜单,遍历菜单通过菜单切换到各个项目 #ifn ...
- epoll 浅析以及 nio 中的 Selector
首先介绍下epoll的基本原理,网上有很多版本,这里选择一个个人觉得相对清晰的讲解(详情见reference): 首先我们来定义流的概念,一个流可以是文件,socket,pipe等等可以进行I/O操作 ...
- 第八讲_图像问答Image Question Answering
第八讲_图像问答Image Question Answering 课程结构 图像问答的描述 具备一系列AI能力:细分识别,物体检测,动作识别,常识推理,知识库推理..... 先要根据问题,判断什么任务 ...
- Hibernate中的条件查询完毕类
Hibernate中的条件查询有下面三个类完毕: 1.Criteria:代表一次查询 2.Criterion:代表一个查询条件 3.Restrictions:产生查询条件的工具类
- vs升级c++项目遇到的一些问题
1.error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x ...
- C语言-回溯例2
组合问题 组合:从n个不同元素中取r个不重复的元素组成一个子集,而不考虑其元素的顺序,称为从n个中取r个的无重组合,例如OR = {1,2,3,4}, n = 4, r = 3则无重组合为: {1,2 ...
- IDA断点和搜索
一.断点 调试很重要一点是下断点,看看IDA提供的功能,本来已经和WinDbg一样强了. 官方文档的变化 Edit breakpoint Action name: BreakpointEdit Con ...
- Linux下Tun/Tap设备通信原理
Tun/Tap都是虚拟网卡,没有直接映射到物理网卡,是一种纯软件的实现.Tun是三层虚拟设备,能够处理三层即IP包,Tap是二层设备,能处理链路层网络包如以太网包.使用虚拟网络设备,可以实现隧道,如O ...
- dwr框架中DWRUtil的方法
dwr框架中DWRUtil的方法 2008-10-14 17:57:23| 分类: JAVA | 标签: |举报 |字号大中小 订阅 7. util.js 功能 util.js包含了一些工 ...