当前位置: 首页>编程笔记>正文

I Am You,POJ 3130 How I Mathematician Wonder What You Are! 半平面交

I Am You,POJ 3130 How I Mathematician Wonder What You Are! 半平面交

和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

https://www.nshth.com/bcbj/338897.html
>

相关文章:

  • I Am You
  • probationary
  • What do I
  • I Love
  • I feel you
  • poj2352
  • I LIKE
  • What
  • pdf翻譯網站,1 Trillion Dollar Refund – How To Spoof PDF Signatures——欺騙PDF簽名
  • 如何創建一個抽象類,創建具體的產品,并繼承產品抽象類
  • 主從庫理論知識-主從同步如何實現?
  • Tomcat環境變量配置,Mybatis的配置文件參數詳解
  • I Am You,POJ 3130 How I Mathematician Wonder What You Are! 半平面交
  • 要學vue需要學什么基礎知識,第一章 Vue基礎入門
  • win7下安裝win10,win10下安裝Ubuntu18.10雙系統
  • vmplayer怎么使用烏邦圖,烏邦圖環境安裝
  • 計算機專業要不要考研——寫的很棒
  • redisson看門狗原理,記錄一次redis漏洞攻擊
  • 任意波形發生器,基于單片機信號波形發生器系統設計-畢設課設
  • 嵌入式驅動,嵌入式Linux驅動大全問世,十年磨一劍,視頻!服務!新老客戶都有大折扣!
  • socket連接器v2下載,Netty(一)基礎socketchannel,Buffer,selector黏包 半包解決 實戰
  • 大一c語言程序設計筆記,吉林大學2013級大一下學期程序設計作業:同學通訊錄系統
  • 暑期小學生計算機培訓班,青島小學生學習編程暑假
  • 熊貓毛小喵喵去哪里了,小西貝、何小喵看熊貓之觀察者設計模式
  • 如何用c語言比較兩個數的大小,如何用C語言求兩個數的較大值
  • 輾轉相除法求最小公倍數的方法,更相減損術--最大公約數
  • 輾轉相除法求最小公倍數的方法,如何求出兩個整數的最大公約數
  • 李新義的書畫藝術,中國現代書畫家——譚奇中、李義象、高俊鵬等
  • 海底撈張勇名言,致張勇先生一封信:海底撈的“七宗罪”!
  • WPF學習(12)動畫
  • ui自動化測試工具,移動端UI自動化之appium的使用(二)
  • 爬蟲網站,Search For Free —— 新聞爬蟲及爬取結果的查詢網站
  • tenda騰達無線設置,騰達F6路由器無線中繼功能設置
  • 斐波那契數列、小青蛙跳臺階
  • OJ每日一練——小青蛙上臺階
  • 小青蛙貝葉斯
  • 小青蛙走臺階問題
  • MySQL數據庫下載,NAVICAT FOR MYSQL存儲過程