洛谷 P3744 李彬的几何 【计算几何】
题目链接
题意:
给出一个凸多边形,点按顺时针给出,每个点可以移动 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 李彬的几何 【计算几何】相关推荐
- P3744 李彬的几何
题目 给定一个凸多边形,每个点最大可以移动的距离为 d d d,让他变得不"凸",求解最小d 算法思路 实际上,就是求解一个点到,他相邻两个点直线的距离的一半 点移动 0.5 h ...
- 洛谷P1027 Car的旅行路线 计算几何 图论最短路
题意 求某城到某城的最小花费 一个城中有四个机场,一个城中的机场相互可达,用公路到达,但是不同城的公路的单位路程的 费不同,两个不同城的机场(我不知道相同城可不可以)可以通过机场到达,且飞机单位路程价 ...
- 洛谷日报 2020年3月前索引
2020 2019 2018 感觉洛谷日报全是干货!!!先记下来再说 2020 年洛谷日报索引 3 月 #260[dove]Church 编码(和 Lambda 演算) https://www.luo ...
- 洛谷日报索引(2020、2019、2018)
历年洛谷日报索引 2020 2019 2018 感觉洛谷日报全是干货!!!先记下来再说 2020 年洛谷日报索引 3 月 #260[dove]Church 编码(和 Lambda 演算) https: ...
- 洛谷 - 试炼场(全部题目备份)
整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...
- [转载]洛谷日报索引
2019年 6月 #183[朝田诗乃]你以为莫队只能离线?莫队的在线化改造 https://shoko.blog.luogu.org/moqueue #182[Heartlessly ]常用距离算法详 ...
- 洛谷千题复习计划(一)(Codeforces + AtCoder)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每天花一个小时简单复习一下我写过的洛谷的题目! 虽然还没有到千题,但是快了(等我复习完这些以后我 lu ...
- 洛谷Latex数学公式大全
本文转载于 https://www.luogu.com.cn/blog/IowaBattleship/latex-gong-shi-tai-quan 转载请在文章页面明显位置注明出处. PS:资料来源 ...
- 洛谷-题解 P2672 【推销员】
独门思路!链表加优先队列! 这题一望,贪心是跑不掉了,但是我贪心并不好,所以想到了一个复杂一些但思路更保稳的做法 思路: 1 因为是离线操作,所以我们可以倒着求,先求x=n的情况,因为那样直接就知道了 ...
最新文章
- XCODE 4.5 IOS多语言设置
- 用计算机创造的音乐,计算机音乐创作(普通组)
- 【UAV】高度控制代码分析
- mysql docker自动化_docker自动化部署
- c语言二维数组表示坐标,c语言多维数组地址的表示方法
- 初识SolrJ开发, schema.xml的配置与服务初始化.
- ADO.NET知识点
- 用了SSD,再用传统机械硬盘电脑,SuperMan(撒泼慢,撒泼男)
- [乐意黎转载]GitHub上整理的一些工具集合
- 微信小程序开发 自定义按钮实现分享转发功能
- 无房产证明怎么办理?
- 1966. 棋盘(chess)
- dydx开发的坑。。。
- 汽车行业深度报告-特斯拉生产制造革命:一体化压铸
- tk跨境电商好做吗?有什么技巧吗?
- IntelliJ IDEA / Eclipse 自动生成 Author 注释 签名
- 移动端扫描vin码(车架号)识别
- Python:谁能赢得最后的糖块?
- 转载:latex中.bb not found问题
- 哈希图 vs 区块链,记账的快与慢
热门文章
- 基本的信号——指数信号与指数序列
- 电脑表格日期怎么修改原有日期_如何修改电子档案资料里的显示日期
- 微信小程序+服务器 利用Swoole的WebSocket实现简单的交互功能
- 制作光盘安装linux系统教程,CentOS 7.0全自动安装光盘制作详解
- APICloud资料
- html基础标签-2-textarea文本域
- “小程序化”,一种创新的混合App开发模式
- lpc43xx双核处理器之双核通信
- C语言学习第一节——初识c语言
- 5u fb库 三菱plc_三菱PLC软件 MELSOFT Library(GX Works2简单工程里使用的FB部件)