和POJ3335一样,只不过这题是逆时针

#include <iostream>
#include <cstdio>
#include <cmath>
#define eps 1e-18
using namespace std;const int MAXN = 105;
double a, b, c;
int n, cnt;struct Point
{double x, y;
}point[MAXN], p[MAXN], tp[MAXN];void Get_equation(Point p1, Point p2)
{a = p2.y - p1.y;b = p1.x - p2.x;c = p2.x * p1.y - p1.x * p2.y;
}Point Intersection(Point p1, Point p2)
{double u = fabs(a * p1.x + b * p1.y + c);double v = fabs(a * p2.x + b * p2.y + c);Point t;t.x = (p1.x * v + p2.x * u) / (u + v);t.y = (p1.y * v + p2.y * u) / (u + v);return t;
}void Cut()
{int tmp = 0;for(int i=1; i<=cnt; i++){//顺时针是>-eps和>eps,逆时针是<eps和<-epsif(a * p[i].x + b * p[i].y + c < eps) tp[++tmp] = p[i];else{if(a * p[i-1].x + b * p[i-1].y + c < -eps)tp[++tmp] = Intersection(p[i-1], p[i]);if(a * p[i+1].x + b * p[i+1].y + c < -eps)tp[++tmp] = Intersection(p[i], p[i+1]);}}for(int i=1; i<=tmp; i++)p[i] = tp[i];p[0] = p[tmp];p[tmp+1] = p[1];cnt = tmp;
}void solve()
{for(int i=1; i<=n; i++)p[i] = point[i];point[n+1] = point[1];p[0] = p[n];p[n+1] = p[1];cnt = n;for(int i=1; i<=n; i++){Get_equation(point[i], point[i+1]);Cut();}
}int main()
{while(~scanf("%d", &n) && n){for(int i=1; i<=n; i++)scanf("%lf%lf", &point[i].x, &point[i].y);solve();puts(cnt > 0? "1" : "0");}return 0;
}

转载于:https://www.cnblogs.com/pach/p/7459307.html

POJ 3130 How I Mathematician Wonder What You Are! 半平面交相关推荐

  1. poj 3384 Feng Shui 半平面交

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

  2. poj 3335 Rotating Scoreboard - 半平面交

    /* poj 3335 Rotating Scoreboard - 半平面交点是顺时针给出的*/ #include <stdio.h> #include<math.h> con ...

  3. POJ 计算几何入门题目推荐

      其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的算法,在很多领域有着重要的用途(例如本人的专 ...

  4. [Z]POJ 计算几何入门题目推荐[转PKKJ]

    http://www.cnblogs.com/eric-blog/archive/2011/05/31/2064785.html http://hi.baidu.com/novosbirsk/blog ...

  5. poj计算几何题推荐

    POJ 计算几何入门题目推荐(转)       其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的 ...

  6. poj 计算几何 分类

    转自novosbirsk的空间,上面还有很多有用的东西. 计算几何题的特点与做题要领: 1.大部分不会很难,少部分题目思路很巧妙 2.做计算几何题目,模板很重要,模板必须高度可靠. 3.要注意代码的组 ...

  7. POJ 计算几何入门题目推荐(转)

    POJ 计算几何入门题目推荐(转)       其实也谈不上推荐,只是自己做过的题目而已,甚至有的题目尚未AC,让在挣扎中.之所以推荐计算几何题,是因为,本人感觉ACM各种算法中计算几何算是比较实际的 ...

  8. [poj3130][半平面交]How I Mathematician Wonder What You Are!

    传送门 http://poj.org/problem?id=3130 题意: 判断多边形的核是否存在 sol: 半平面交,满足所有半平面的区域显然就是核. #include<iostream&g ...

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

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

最新文章

  1. php分布式redis实现session共享
  2. 我的第一个ASP类(显示止一篇下一篇文章)
  3. 【童年回忆】【FC模拟器 + ROM大合集下载】
  4. shell脚本监控系统负载、CPU和内存使用情况
  5. 开放下载!《AliOS Things快速开发指南》
  6. 记录 之 tensorflow常见的数据预处理操作
  7. kpu 处理器_首轮融资即估值过亿,中科驭数用全新专用计算架构让芯片也能“私人订制”...
  8. Storm的BaseBasicBolt源码解析ack机制
  9. 牛客网编程题03--明明的随机数
  10. android fragment 优势,Android Fragment详解
  11. web服务器php配置实例,配置 Web 服务器提供 PHP 服务
  12. 移动安全-java JEB安装使用
  13. sqlserver行列转换,动态行转换
  14. 广汽埃安发布新LOGO,推出全新高端品牌Hyper昊铂
  15. 花生采摘(peanuts)
  16. 美不胜“售”的花花世界
  17. UDS-统一诊断服务
  18. opencv surf特征点检测(二),API接口分析
  19. 复旦大学计算机科学技术学院期末,复旦大学计算机科学技术学院多媒体技术基础试题...
  20. 解读最佳实践:倚天710 ARM芯片的 Python+AI 算力优化

热门文章

  1. Discrete Maths Answer
  2. spring cloud eureka无法加载样式wro.css和脚本wro.js
  3. 基于java的千千影评网站的设计与实现(论文+程序设计源码+数据库文件)
  4. 2022年P气瓶充装试题及在线模拟考试
  5. Python下对信号的捕获以及优雅的处理
  6. vue echarts 地图立体 并设置tooltip属性背景图片
  7. 照片批量重命名为拍摄日期
  8. 看完 GitHub 上这几个奇葩项目后,我忍不住笑了 233333
  9. 记一次在Taro开发的微信小程序中使用lottie动画的经验
  10. 店铺每日生意营业流水记账本