题目链接

题意:

给出一个凸多边形,点按顺时针给出,每个点可以移动 d d d 的距离,求使这个多边形不再是凸多边形的最小的 d d d

题解:


不难发现,要使一个凸多边形不再凸,就是把一个顶点移到两个的的连线上,要使移动距离最短,那就是移到相邻两个点的连线上,但是每个点都可以移动,如图,点B向相邻两个点的线段AC移动,AC也可以向B移动,所以求出点到直线距离还要 ÷ 2 ÷2 ÷2

#include<iostream>
#include<sstream>
#include<string>
#include<queue>
#include<map>
#include<unordered_map>
#include<set>
#include<vector>
#include<stack>
#include <utility>
#include<algorithm>
#include<cstdio>
#include<list>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<iomanip>
#include<time.h>
#include<random>
using namespace std;
#include<ext/pb_ds/priority_queue.hpp>
#include<ext/pb_ds/tree_policy.hpp>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/hash_policy.hpp>
using namespace __gnu_pbds;
#include<ext/rope>
using namespace __gnu_cxx;#define int long long
#define PI acos(-1.0)
#define eps 1e-9
#define lowbit(a) ((a)&-(a))const int mod = 1e9+7;
int qpow(int a,int b){int ans=1;while(b){if(b&1)ans=(ans*a)%mod;a=(a*a)%mod;b>>=1;}return ans;
}
const int INF = 0x3f3f3f3f;
const int N = 1e6+10;struct point{double x,y;point(double x=0,double y=0):x(x),y(y){}
}p[N];
point operator-(point x,point y){return point(x.x-y.x,x.y-y.y);}
double Cross(point x,point y){return fabs(x.x*y.y-x.y*y.x);}//向量叉乘
double Len(point x,point y){return sqrt((x.x-y.x)*(x.x-y.x)+(x.y-y.y)*(x.y-y.y));}//点到直线距离
double solve(int i){point x1=p[i+2]-p[i];point x2=p[i+1]-p[i];return Cross(x1,x2)/Len(x1,point(0,0));}
#define endl '\n'
signed main(){std::ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);int n; cin>>n;for(int i=1;i<=n;i++)cin>>p[i].x>>p[i].y;p[n+1]=p[1],p[n+2]=p[2];double ans=INF;for(int i=1;i<=n;i++){//枚举起点i,计算i+1到直线i和i+2的距离ans=min(ans,solve(i));}cout<<fixed<<setprecision(6)<<ans/2<<endl;
}

洛谷 P3744 李彬的几何 【计算几何】相关推荐

  1. P3744 李彬的几何

    题目 给定一个凸多边形,每个点最大可以移动的距离为 d d d,让他变得不"凸",求解最小d 算法思路 实际上,就是求解一个点到,他相邻两个点直线的距离的一半 点移动 0.5 h ...

  2. 洛谷P1027 Car的旅行路线 计算几何 图论最短路

    题意 求某城到某城的最小花费 一个城中有四个机场,一个城中的机场相互可达,用公路到达,但是不同城的公路的单位路程的 费不同,两个不同城的机场(我不知道相同城可不可以)可以通过机场到达,且飞机单位路程价 ...

  3. 洛谷日报 2020年3月前索引

    2020 2019 2018 感觉洛谷日报全是干货!!!先记下来再说 2020 年洛谷日报索引 3 月 #260[dove]Church 编码(和 Lambda 演算) https://www.luo ...

  4. 洛谷日报索引(2020、2019、2018)

    历年洛谷日报索引 2020 2019 2018 感觉洛谷日报全是干货!!!先记下来再说 2020 年洛谷日报索引 3 月 #260[dove]Church 编码(和 Lambda 演算) https: ...

  5. 洛谷 - 试炼场(全部题目备份)

    整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...

  6. [转载]洛谷日报索引

    2019年 6月 #183[朝田诗乃]你以为莫队只能离线?莫队的在线化改造 https://shoko.blog.luogu.org/moqueue #182[Heartlessly ]常用距离算法详 ...

  7. 洛谷千题复习计划(一)(Codeforces + AtCoder)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每天花一个小时简单复习一下我写过的洛谷的题目! 虽然还没有到千题,但是快了(等我复习完这些以后我 lu ...

  8. 洛谷Latex数学公式大全

    本文转载于 https://www.luogu.com.cn/blog/IowaBattleship/latex-gong-shi-tai-quan 转载请在文章页面明显位置注明出处. PS:资料来源 ...

  9. 洛谷-题解 P2672 【推销员】

    独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...

最新文章

  1. XCODE 4.5 IOS多语言设置
  2. 用计算机创造的音乐,计算机音乐创作(普通组)
  3. 【UAV】高度控制代码分析
  4. mysql docker自动化_docker自动化部署
  5. c语言二维数组表示坐标,c语言多维数组地址的表示方法
  6. 初识SolrJ开发, schema.xml的配置与服务初始化.
  7. ADO.NET知识点
  8. 用了SSD,再用传统机械硬盘电脑,SuperMan(撒泼慢,撒泼男)
  9. [乐意黎转载]GitHub上整理的一些工具集合
  10. 微信小程序开发 自定义按钮实现分享转发功能
  11. 无房产证明怎么办理?
  12. 1966. 棋盘(chess)
  13. dydx开发的坑。。。
  14. 汽车行业深度报告-特斯拉生产制造革命:一体化压铸
  15. tk跨境电商好做吗?有什么技巧吗?
  16. IntelliJ IDEA / Eclipse 自动生成 Author 注释 签名
  17. 移动端扫描vin码(车架号)识别
  18. Python:谁能赢得最后的糖块?
  19. 转载:latex中.bb not found问题
  20. 哈希图 vs 区块链,记账的快与慢

热门文章

  1. 基本的信号——指数信号与指数序列
  2. 电脑表格日期怎么修改原有日期_如何修改电子档案资料里的显示日期
  3. 微信小程序+服务器 利用Swoole的WebSocket实现简单的交互功能
  4. 制作光盘安装linux系统教程,CentOS 7.0全自动安装光盘制作详解
  5. APICloud资料
  6. html基础标签-2-textarea文本域
  7. “小程序化”,一种创新的混合App开发模式
  8. lpc43xx双核处理器之双核通信
  9. C语言学习第一节——初识c语言
  10. 5u fb库 三菱plc_三菱PLC软件 MELSOFT Library(GX Works2简单工程里使用的FB部件)