zoukankan      html  css  js  c++  java
  • POJ 2653 Pick-up sticks 线段相交

    题目大意:一次丢下去n根木棒,问那些木棒不被其他木棒压着,依次输出。

    题目思路:叉积判断线段是否相交,吐槽下POJ数据真弱竟然没超时……

    #include<cstdio>
    #include<cstdlib>
    #include<cmath>
    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<vector>
    #include<queue>
    #define INF 0x3f3f3f3f
    #define MAX 100005
    
    struct node
    {
        double x1,y1,x2,y2;
    }point[MAX];
    
    int vis[MAX],n;
    
    double Cross(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4)
    {
        double a=(x2-x1)*(y3-y1)-(x3-x1)*(y2-y1);
        double b=(x2-x1)*(y4-y1)-(x4-x1)*(y2-y1);
        return a*b;
    }
    
    void Solve()
    {
        for(int i=1;i<n;i++)
        {
            double x1=point[i].x1;
            double y1=point[i].y1;
            double x2=point[i].x2;
            double y2=point[i].y2;
            for(int j=i+1;j<=n;j++)
            {
                if(Cross(x1,y1,x2,y2,point[j].x1,point[j].y1,point[j].x2,point[j].y2)<=1e-10 && Cross(point[j].x1,point[j].y1,point[j].x2,point[j].y2,x1,y1,x2,y2)<=1e-10)
                {
                    vis[i]=1;
                    break;
                }
            }
        }
        printf("Top sticks: ");
        for(int i=1;i<n;i++)
        {
            if(!vis[i])
                printf("%d, ",i);
        }
        printf("%d.
    ",n);
    }
    
    int main()
    {
        while(scanf("%d",&n),n)
        {
            for(int i=1;i<=n;i++)
            {
                scanf("%lf%lf%lf%lf",&point[i].x1,&point[i].y1,&point[i].x2,&point[i].y2);
                vis[i]=0;
            }
            Solve();
        }
        return 0;
    }
    View Code
  • 相关阅读:
    Spring AOP
    Spring IOC
    Mysql数据库
    Java实现发送手机验证码功能
    jqzoom插件制作仿京东商品详情页面图片特效
    tomcat7中cookie写入中文引发Control character in cookie value or attribute异常
    javascript对cookie进行管理
    queryrunner Basedao的使用
    BeanUtils String转Date注册器
    Dbutils学习
  • 原文地址:https://www.cnblogs.com/alan-W/p/6015709.html
Copyright © 2011-2022 走看看