hdu1086
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stack>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <math.h>
#include <algorithm>
using namespace std;
const double pi = acos(-1.0);
const int INF = 0x3f3f3f3f;
struct Line
{
double x1,y1,x2,y2;
}node[105];
bool solve(Line a, Line b)//叉积判断两线段是否相交
{
if (((a.x1-b.x1)*(a.y2-b.y1)-(a.x2-b.x1)*(a.y1-b.y1))*((a.x1-b.x2)*(a.y2-b.y2)-(a.x2-b.x2)*(a.y1-b.y2))>0)
return false;
if (((b.x1-a.x1)*(b.y2-a.y1)-(b.x2-a.x1)*(b.y1-a.y1))*((b.x1-a.x2)*(b.y2-a.y2)-(b.x2-a.x2)*(b.y1-a.y2))>0)
return false;
return true;
}
int main ()
{
int n;
while (scanf ("%d",&n),n)
{
for (int i=0; i<n; i++)
scanf ("%lf%lf%lf%lf",&node[i].x1,&node[i].y1,&node[i].x2,&node[i].y2);
int cnt = 0;
for (int i=0; i<n; i++)
{
for (int j=i+1; j<n; j++)
{
if (solve(node[i], node[j]))
cnt++;
}
}
printf ("%d\n",cnt);
}
return 0;
}
最新文章
- 【转】TCP协议
- var a=function()跟function a()的区别
- 简单破解.net(C#)程序
- MySQL数据库1 - 基本概念及安装
- centos添加PATH环境变量
- 为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment
- 【转】【Http】Http各种错误的意思
- 传染病控制(codevs 1091)
- Core Java 学习笔记——1.术语/环境配置/Eclipse汉化字体快捷键/API文档
- ios中关于delegate(委托)的使用心得
- (大数据工程师学习路径)第三步 Git Community Book----Git介绍
- java.lang.RuntimeException: java.sql.SQLException: Too many parameters: expected 0, was given 1 Quer
- LeetCode - 627. Swap Salary
- AS报:Manifest merger failed with multiple errors, see logs
- 记第一次XSS实战
- 创建java类并实例化类对象
- ORACLE查询内存溢出
- Android:ImageView控件
- LeetCode总结 -- 一维动态规划篇
- node.js---sails项目开发(2)