题目链接:https://cn.vjudge.net/problem/POJ-3384

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include <iostream>#define eps 1e-10
using namespace std;
struct point{double x,y;
}points[110],p[110],q[110];
int n,curcnt,cCnt,m;
void guizheng(){for(int i=1;i<=n;++i){q[i]=points[n-i+1];}for(int i=1;i<=n;++i){points[i]=q[i];}
}
double juli(point p1, point p2){return (p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);
}
void getline(point p1,point p2,double &a,double &b,double &c){a=p2.y-p1.y;b=p1.x-p2.x;c=p2.x*p1.y-p2.y*p1.x;
}
void init(){for(int i=1;i<=n;++i){p[i]=points[i];}p[n+1]=p[1];p[0]=p[n];cCnt=n;
}
point getinter(point p1,point p2,double a,double b,double c){double u=fabs(a*p1.x+b*p1.y+c);double v=fabs(a*p2.x+b*p2.y+c);point temp;temp.x=(v*p1.x+u*p2.x)/(u+v);temp.y=(v*p1.y+u*p2.y)/(u+v);return temp;
}
void cut(double a,double b,double c){curcnt=0;for(int i=1;i<=cCnt;++i){if(a*p[i].x+b*p[i].y+c>=0)q[++curcnt]=p[i];else{if(a*p[i-1].x+b*p[i-1].y+c>0){q[++curcnt]=getinter(p[i],p[i-1],a,b,c);}if(a*p[i+1].x+b*p[i+1].y+c>0)q[++curcnt]=getinter(p[i],p[i+1],a,b,c);}}for(int i=1;i<=curcnt;++i){p[i]=q[i];}p[curcnt+1]=q[1];p[0]=p[curcnt];cCnt=curcnt;
}
void solve(){points[n+1]=points[1];init();for(int i=1;i<=n;++i){point ta,tb,tc;tc.x=points[i+1].y-points[i].y;tc.y=points[i].x-points[i+1].x;double k=m/sqrt(tc.x*tc.x+tc.y*tc.y);tc.x*=k;tc.y*=k;ta.x=points[i].x+tc.x;ta.y=points[i].y+tc.y;tb.x=points[i+1].x+tc.x;tb.y=points[i+1].y+tc.y;double a,b,c;getline(ta,tb,a,b,c);cut(a,b,c);}double max=-1;int r1,r2;for(int i=1;i<=cCnt;++i){for(int j=i+1;j<=cCnt;++j){double temp= juli(p[i], p[j]);if(temp>max){max=temp;r1=i;r2=j;}}}printf("%.6lf %.6lf %.6lf %.6lf\n",p[r1].x,p[r1].y,p[r2].x,p[r2].y);
}
int main()
{int i,j,k;while(~scanf("%d%d",&n,&m)){for(i=1;i<=n;++i){scanf("%lf%lf",&points[i].x,&points[i].y);}solve();}return 0;
}

Feng Shui POJ - 3384相关推荐

  1. Feng Shui POJ - 3384 [半平面交]

    Feng Shui POJ - 3384 题意:n个顶点的凸包,放入2个半径为r的圆,可以重叠,要求面积最大,输出2个圆的圆心坐标(保留4位小数) 思路:找出圆心的可行域(内推r,求半平面交),再求核 ...

  2. poj 3384 Feng Shui (Half Plane Intersection)

    3384 -- Feng Shui 构造半平面交,然后求凸包上最远点对. 这题的题意是给出一个凸多边形区域,要求在其中放置两个半径为r的圆(不能超出凸多边形区域),要求求出两个圆心,使得多边形中没有被 ...

  3. POJ - 3384 Feng Shui(半平面交)

    链接 Feng Shui 题意 将两个半径为 rrr 的圆放入一个多边形中,两个圆占据最大面积时圆心坐标是多少: 思路 在多边形中放圆,最大圆的圆心一定在多边形内核中: 将多边形的每条边都内推 rrr ...

  4. CodeForces - Feng Shui(半平面交)

    题目链接:http://codeforces.com/gym/101650/attachments Time Limit: 2000MS Memory Limit: 65536K Descriptio ...

  5. poj 3384 Feng Shui 半平面交

    http://poj.org/problem?id=3384 给定一个多边形,在多边形内放有两个相同的圆,使两个圆尽可能多的覆盖多边形.输出最终两个圆心的位置. 最优的放置方法必定是圆内切于两条边,那 ...

  6. POJ 3384 Feng Shui(半平面交)

    题意 : 给你一个凸多边形,让你在其中找两个圆,使得圆的覆盖面积最大. 这个题目和 poj 3525 有点类似,那个题目是一个圆,想到两者的联系,可以发现两个圆覆盖面积最大就是重叠面积最小,怎样使得重 ...

  7. POJ 3384 Feng Shui

    坑爹的题,,就是先向内推进r,然后半平面交得出圆心范围. 然后旋转卡壳求最远点对 这道题首先样例给的就不对,不知道什么情况 然后一直WA,后来看了discuss,试了下这组数据: 4 1 0 0 0 ...

  8. [POJ3384]Feng Shui(半平面交+凸包)

    题目: 我是超链接 题意: 在一个凸多边形中放两个半径固定的圆,要求输出使覆盖面积最大的(可重叠)两个圆圆心 题解: Emmm...套路缩小凸多边形,形成的凸包是圆心可以在的位置,然后暴力找最远点! ...

  9. Using the five elements of fashion colors to create the best feng shui in auspicious Home

    Romania, just a legend Licheng Peng Galaxy SOHO opening-day sales 46 Pan Shiyi Students start the On ...

最新文章

  1. 「完结」总结12大CNN主流模型架构设计思想
  2. c int最小值的宏_C语言宏定义的妙用!用完软硬件效率蹭蹭涨!
  3. 404.2错误解决方案
  4. Mac 编译安装 Redis-3.2.3
  5. springboot整合视图层之freemarker
  6. asu计算机工程师,优达udacity无人驾驶工程师第一二三期(全)
  7. PHP 7 的五大新特性
  8. python在线编辑器可视化_python软件——wxpython可视化编辑器 v4.1附使用教程
  9. Python—常用正则表达式方法
  10. php常用字体大小,推荐:PHP编辑器常用的几种字体下载
  11. 用U盘给虚拟机装系统——U深度
  12. 台达plc自由口通讯_台达PLC的通信协议??
  13. python抽奖小程序_python实现简单的抽奖小程序,抽奖的内容从文件里面读取
  14. [机器学习必知必会]泛化误差率的偏差-方差分解
  15. 一款基于tampermonkey的浏览器插件:聚合搜索
  16. 小米4调整系统分区刷入opengapps stock
  17. kali实验过程与结果讲解
  18. MYSQL中概念模型的基本概念_数据库基本概念
  19. 机械键盘之黑轴、青轴、茶轴、红轴、白轴的区别
  20. 08——驾校科目一考试——布局按钮

热门文章

  1. win 10计算机文件,Win10电脑怎么转移c盘文件?
  2. hbase学习教程(一):hbase的概述和hbase架构及基本组件
  3. insmod等模块命令
  4. autoconf与automake使用简解
  5. adb 卸载android系统程序
  6. 数据库关键字(保留字)
  7. YY直播如何嵌入网站?
  8. 全文搜索引擎ElasticSearch
  9. 0 基础 Java 自学之路(2022年最新版)
  10. CVPR2020 Learning in the Frequency Domain学习笔记