Breaking Biscuits(模板题-求凸边形的宽)
Breaking Biscuits
时间限制: 1 Sec 内存限制: 128 MB Special Judge
提交: 70 解决: 26
[提交] [状态] [讨论版] [命题人:admin]
题目描述
Biscuits come in many shapes and sizes, but the particular brand they settled on has two special qualities:
• It is completely planar (two-dimensional);
• It is perfectly polygon-shaped.
However, disaster struck immediately: the available mugs in the break room are too narrow for Walter to be able to dunk these new biscuits into, no matter what combination of rotations along the three axes he tries.
There is only one thing for it: Walter will need to order another mug.
Before taking this drastic step, it is vital to know how wide the diameter of this mug will need to be in order to succesfully accommodate a (possibly rotated) biscuit of the new brand.
输入
• Each of the following N lines contains two space-separated integers Xi and Yi (−105 ≤Xi, Yi ≤ 105), the coordinates of the i-th vertex.
Vertices are always given in anti-clockwise order. Also, as anyone can tell you, biscuits never self-intersect and always have positive area.
输出
样例输入
4
0 0
5 0
5 2
0 2
样例输出
2.0
#include<bits/stdc++.h>
using namespace std;
const int N=;
int n;
double ans=1e100;
struct P
{
int x,y;
P() {}
P(int _x,int _y)
{
x=_x,y=_y;
}
P operator-(P b)
{
return P(x-b.x,y-b.y);
}
double len()
{
return hypot(x,y);
}
} a[N];
double cross(P a,P b)
{
return a.x*b.y-a.y*b.x;
}
double dist(P p,P a,P b)
{
return cross(p-a,b-a)/(b-a).len();
}
void solve()
{
for(int i = ; i <= n; i++)
{
for(int j = ; j < i; j++)
{
double l=1e100,r=-1e100;
for(int k = ; k <= n; k++)
{
l=min(l,dist(a[k],a[i],a[j]));
r=max(r,dist(a[k],a[i],a[j]));
}
r-=l;
ans=min(ans,r);
}
}
}
int main()
{
scanf("%d",&n);
for(int i=; i<=n; i++) scanf("%d %d",&a[i].x,&a[i].y);
solve();
printf("%.10f\n",ans);
return ;
}
Breaking Biscuits(模板题-求凸边形的宽)的更多相关文章
- (hdu step 7.2.1)The Euler function(欧拉函数模板题——求phi[a]到phi[b]的和)
题目: The Euler function Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 后缀数组(模板题) - 求最长公共子串 - poj 2774 Long Long Message
Language: Default Long Long Message Time Limit: 4000MS Memory Limit: 131072K Total Submissions: 21 ...
- UVA 796 Critical Links(模板题)(无向图求桥)
<题目链接> 题目大意: 无向连通图求桥,并将桥按顺序输出. 解题分析: 无向图求桥的模板题,下面用了kuangbin的模板. #include <cstdio> #inclu ...
- UVA 315 Network (模板题)(无向图求割点)
<题目链接> 题目大意: 给出一个无向图,求出其中的割点数量. 解题分析: 无向图求割点模板题. 一个顶点u是割点,当且仅当满足 (1) u为树根,且u有多于一个子树. (2) u不为树根 ...
- hdu1115 Lifting the Stone(几何,求多边形重心模板题)
转载请注明出处:http://blog.csdn.net/u012860063 题目链接:pid=1115">http://acm.hdu.edu.cn/showproblem.php ...
- luogu P4725 多项式对数函数 (模板题、FFT、多项式求逆、求导和积分)
手动博客搬家: 本文发表于20181125 13:25:03, 原地址https://blog.csdn.net/suncongbo/article/details/84487306 题目链接: ht ...
- POJ2774 & 后缀数组模板题
题意: 求两个字符串的LCP SOL: 模板题.连一起搞一搞就好了...主要是记录一下做(sha)题(bi)过程心(cao)得(dan)体(xin)会(qing) 后缀数组概念...还算是简单的,过程 ...
- HDU-3549 最大流模板题
1.HDU-3549 Flow Problem 2.链接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 3.总结:模板题,参考了 http://ww ...
- POJ 3041 匈牙利算法模板题
一开始预习是百度的算法 然后学习了一下 然后找到了学长的ppt 又学习了一下.. 发现..居然不一样... 找了模板题试了试..百度的不好用 反正就是wa了..果然还是应当跟着学长混.. 图两边的点分 ...
随机推荐
- 3-----Scrapy框架的命令行详解
创建爬虫项目 scrapy startproject 项目名 例子如下: E:\crawler>scrapy startproject test1 New Scrapy project 'tes ...
- CSS控制标题字符长度的方法
<style type="text/css"> .abc { background-color: #CCC; width: auto; overflow:hidden; ...
- 使用PyCharm实现远程编写并调试代码
使用PyCharm实现远程编写并调试代码 版权声明:本文为博主原创文章,转载请注明出https://www.cnblogs.com/wenqiangit/p/9771947.html 因为工作中使用的 ...
- A. Yet Another Problem with Strings 分块 + hash
http://codeforces.com/gym/101138/problem/A 感觉有一种套路就是总长度 <= 某一个数的这类题,大多可以分块 首先把集合串按长度分块,对于每一个询问串, ...
- Animation 把动画片段拖入Animation组件里后不能播放
1. 选中动画片段,点击右上角三道横杠那个按钮,选择Debug: 2.选择Legacy,然后再点击那个三道横岗的按钮,选择Normal就可以用了应该.
- Sqlite操作的一些关键类的官方说明与Intent的startactivityforresult方法
Intent: 该功能可以用于通过intent来跳转界面时候传递信号给原理的页面,以便做出一些处理: sqlite的使用: 该方法得到的sqlitedatabase可读可写,而getreadabled ...
- (转)DNS解析过程详解
DNS解析过程详解 原文:http://blog.csdn.net/crazw/article/details/8986504 先说一下DNS的几个基本概念: 一. 根域 就是所谓的“.”,其实我们的 ...
- typescript的lambads解决this关键字找不到属性
var people = { name: ["abc", "jack", "pepter", "jim"], getna ...
- Ajax原理实现
jQuery的ajax实现原理: // 1.创建一个XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 2.打开请求 xhr.open('METHO ...
- PHP函数库(core)
数组函数: array_change_key_case — 返回字符串键名全为小写或大写的数组 array_change_key_case() 将 input 数组中的所有键名改为全小写或大写.改变是 ...