POJ 3304 直线与线段相交判断
来源:互联网 发布:什么是软件集成 编辑:程序博客网 时间:2024/05/29 17:23
code:
#include <iostream>#include <cstring>#include <cmath>using namespace std;typedef double ld;const ld eps = 1e-8;const int N = 110;struct line{ ld p[2][2];}l[N];struct vec{ ld x, y; vec(ld _x, ld _y):x(_x), y(_y){}; ld operator * (const vec &rhs) const{ return x * rhs.y - y * rhs.x; }/**叉积*/};int n;bool f;bool check(ld sx, ld sy, ld ex, ld ey, int ii, int ij){ if(fabs(ex - sx) < eps && fabs(ey - sy) < eps) return false;/**重点*/ for(int i = 1; i <= n; ++i){ if(i == ii || i == ij) continue; ld la = vec(l[i].p[0][0] - sx, l[i].p[0][1] - sy) * vec(ex - sx, ey - sy); ld ra = vec(l[i].p[1][0] - sx, l[i].p[1][1] - sy) * vec(ex - sx, ey - sy); if(la * ra > 0) return false;/**直线和线段相交la * ra <= 0*/ } return true;}void solve(){ for(int i = 1; i <= n; ++i){ for(int ii = 0; ii < 2; ++ii)/**枚举端点*/ for(int j = 1; j <= n; ++j){ //if(j == i) continue; for(int ij = 0; ij < 2; ++ij){ if(check(l[i].p[ii][0], l[i].p[ii][1], l[j].p[ij][0], l[j].p[ij][1], i, j)){ f = 1; break; } } } }}int main(){ int t; cin >> t; while(t--){ f = 0; cin >> n; for(int i = 1; i <= n; ++i) cin >> l[i].p[0][0] >> l[i].p[0][1] >> l[i].p[1][0] >> l[i].p[1][1]; solve(); if(f) cout << "Yes!" << endl; else cout << "No!" << endl; } return 0;}
0 0
- POJ 3304 判断直线与线段相交
- POJ 3304 判断线段 与 直线 相交
- poj 3304 判断直线与线段相交
- POJ 3304 直线与线段相交判断
- poj 3304 Segments(判断直线与线段相交)
- POJ 3304 Segments 判断直线与线段相交
- POJ 3304 直线与线段相交的判断
- POJ 3304 判断线段和直线相交
- POJ 3304 Segment 直线与线段相交
- POJ 3304 Segment 直线与线段相交
- poj-3304-Segments-线段与直线相交
- poj 3304 Segments 线段与直线相交
- 判断直线与线段 是否相交 + 加入误差 故需要判断重点 poj 3304 Segments
- POJ - 3304 :Segments__判断直线和线段是否 相交
- POJ 3304 Segments (判断直线和线段是否相交)
- poj 3304 Segments(判断线段和直线相交)
- POJ 3304 Segments [判断线段和直线相交]
- POJ 3304 - Segments【计算几何 - 直线线段相交判断】
- 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
- checbox的全选,以及复选,还有点击监听和状态监听
- 动态库与静态库的区别
- 图书管理系统之过滤器--处理用户信息的过滤和订单数据的处理
- Java学习笔记(五)--二维数组 冒泡排序 选择排序 Arrays数组工具类
- POJ 3304 直线与线段相交判断
- Qlist+QMap+QVariant使用
- 面向对象——类与类之间的关系
- js中的原型及原型链
- 随便说说
- Git由浅入深之分支管理
- ios学习第五天(七)UI控件总结
- 单链表(无头结点)
- 汉字统计