zoj 1648 Circuit Board

题目:意思就是推断给定的几条线段是否有相交的。

方法:模版吧,有空在来细细学习。

代码:

#include <iostream>
#include <cstdio>
using namespace std;
struct   Point
{
    double   x,y;
};
struct   LineSeg
{
    Point   a,b;
};
double Cross(Point a, Point b, Point c )
{
    return (c.x - a.x)*(b.y - a.y) - (b.x - a.x)*(c.y - a.y);
}
int   Yu(LineSeg   u,LineSeg   v)
{
    return(   (max(u.a.x,u.b.x)>=min(v.a.x,v.b.x))&&
              (max(v.a.x,v.b.x)>=min(u.a.x,u.b.x))&&
              (max(u.a.y,u.b.y)>=min(v.a.y,v.b.y))&&
              (max(v.a.y,v.b.y)>=min(u.a.y,u.b.y))&&
              (Cross(v.a,u.b,u.a)*Cross(u.b,v.b,u.a)>=0)&&
              (Cross(u.a,v.b,v.a)*Cross(v.b,u.b,v.a)>=0));
}

int main()
{
    int n;
    int flag=0;
    LineSeg l[2002];
    while(cin>>n)
    {
        flag=0;
        for(int i=0;i<n;i++)
        {
            scanf("%lf%lf%lf%lf",&l[i].a.x,&l[i].a.y,&l[i].b.x,&l[i].b.y);
            if(!flag)
            for(int j=0;j<i;j++)
            if(Yu(l[j],l[i]))
            {
                flag=1;
                break;
            }
        }
        if(!flag) cout<<"ok!"<<endl;
        else cout<<"burned!"<<endl;
    }
    return 0;
}
时间: 2024-11-09 04:21:34

zoj 1648 Circuit Board的相关文章

zoj 1648 判断线段是否相交

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=648 Circuit Board Time Limit: 2 Seconds      Memory Limit: 65536 KB On the circuit board, there are lots of circuit paths. We know the basic constrain is that no two path cross each other,

NEFU 506&amp;&amp;ZOJ 3353 Chess Board (四种构造的高斯消元)

题目链接 题意:有四种翻转方式,问是否能使得所有棋子都变为0,求最小步数. 题解:依次构造枚举求出最小值即可. #include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <queue> #include <vector> #include <map> #inclu

图论 500题——主要为hdu/poj/zoj

转自——http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并查集======================================[HDU]1213   How Many Tables   基础并查集★1272   小希的迷宫   基础并查集★1325&&poj1308  Is It A Tree?   基础并查集★1856   More i

COB(Chip On Board) 工艺技术

COX(Chip On X) •X 基板: PCB (Printed circuit board) FPC (Flexible Printed Circuit) Glass •导线焊接 球形焊接(金线) 楔形焊接(铝线或金线) •晶片(Die):硅晶片IC&LSI,砷化镓,…… COB(Chip On Board) 工艺技术,布布扣,bubuko.com

题单二:图论500

http://wenku.baidu.com/link?url=gETLFsWcgddEDRZ334EJOS7qCTab94qw5cor8Es0LINVaGMSgc9nIV-utRIDh--2UwRLvsvJ5tXFjbdpzbjygEdpGehim1i5BfzYgYWxJmu ==========  以下是最小生成树+并查集=========================[HDU]1213         How Many Tables        基础并查集★1272         小

图论五百题!

生死看淡不服就淦,这才是人生! =============================以下是最小生成树+并查集======================================[HDU]1213 How Many Tables 基础并查集★1272 小希的迷宫 基础并查集★1325&&poj1308 Is It A Tree? 基础并查集★1856 More is better 基础并查集★1102 Constructing Roads 基础最小生成树★1232 畅通工程 基

图论精炼500题

忘了从哪转的了... =============================以下是最小生成树+并查集====================================== [HDU] 1213               How Many Tables                    基础并查集★ 1272               小希的迷宫                     基础并查集★ 1325&&poj1308    Is It A Tree?       

hdu图论题目分类

=============================以下是最小生成树+并查集====================================== [HDU] 1213 How Many Tables 基础并查集★ 1272 小希的迷宫 基础并查集★ 1325&&poj1308 Is It A Tree? 基础并查集★ 1856 More is better 基础并查集★ 1102 Constructing Roads 基础最小生成树★ 1232 畅通工程 基础并查集★ 123

图论500题

=============================以下是最小生成树+并查集====================================== [HDU] 1213   How Many Tables   基础并查集★ 1272   小希的迷宫   基础并查集★ 1325&&poj1308  Is It A Tree?   基础并查集★ 1856   More is better   基础并查集★ 1102   Constructing Roads  基础最小生成树★ 12