NEFU 922 判断线段相交

简介:

http://acm.nefu.edu.cn/JudgeOnline/problemshow.php?problem_id=922

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
using namespace std;
typedef struct
{
    int x,y;
}sa;
int chaji(sa a,sa b,sa c)//计算ca和cb
{
    return (a.x-c.x)*(b.y-c.y)-(b.x-c.x)*(a.y-c.y);
}
bool online(sa a,sa b,sa c) //判断点c是否在线段ab上
{
    if(min(a.x,b.x)<=c.x&&c.x<=max(a.x,b.x))
    {
        if(min(a.y,b.y)<=c.y&&c.y<=max(a.y,b.y))
        {
            return 1;
        }
    }
    return 0;
}
bool xj(sa a,sa b,sa c,sa d)
{
    int d1=chaji(c,d,a);//计算ac,ad
    int d2=chaji(c,d,b);//bc,bd
    int d3=chaji(a,b,c);//ca,cb
    int d4=chaji(a,b,d);//db,da
    if(d1*d2<0&&d3*d4<0)
        return 1;
    else if(d1==0&&online(c,d,a))
        return 1;
    else if(d2==0&&online(c,d,b))
        return 1;
    else if(d3==0&&online(a,b,c))
        return 1;
    else if(d4==0&&online(a,b,d))
        return 1;
    return 0;
}
int main()
{
    sa data[5];
    int m;
    while(cin>>m&&m)
    {
        while(m--)
        {
            for(int i=0;i<4;i++)
               cin>>data[i].x>>data[i].y;
            if(xj(data[0],data[1],data[2],data[3]))
               cout<<"YES"<<endl;
            else
               cout<<"no"<<endl;
        }
    }
    return 0;
}
目录
相关文章
|
6月前
|
Java Spring
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
`@RequiredArgsConstructor(onConstructor = @__(@Autowired))` 是一个注解,通常用于在类中生成一个包含所有`final`和`@NonNull`注解的字段的构造函数,并且对这些字段进行自动注入(使用Spring框架的`@Autowired`注解)。让我们详细解释一下: 1. **`@RequiredArgsConstructor` 注解:** - **作用:** Lombok 提供的注解,用于自动生成类的构造函数。 - **生成的构造函数:** 生成一个包含所有`final`字段的构造函数,同时也包括被`@NonNull`注解
630 1
|
11月前
RequiredArgsConstructor
RequiredArgsConstructor
84 1
|
6月前
|
Java Spring 容器
SpringAop
SpringAop
53 0
|
XML 监控 Java
SpringAOP介绍与使用
SpringAOP介绍与使用
68 0
|
Java Spring
|
数据安全/隐私保护
SpringAOP(二)
SpringAOP(二)
|
数据安全/隐私保护
SpringAOP(四)
SpringAOP(四)
|
Java 数据库连接 数据库
SpringAOP(三)
SpringAOP(三)
|
XML Java 数据格式
SpringAOP(一)
SpringAOP(一)
|
Java
SpringAop学习(二)
SpringAop学习(二)
110 1
SpringAop学习(二)