Poj 1066 Treasure Hunt && Nyoj 83 迷宫寻宝(二)判断线段相交

来源:互联网 发布:淘宝女装模特拍摄技巧 编辑:程序博客网 时间:2024/05/16 01:27

题目链接:poj 1066        nyoj 83

 题目的意思很是简单,说是有一个四边形的迷宫。某一个位置有个宝物在某一点,迷宫中还有很多的墙。问最少需要凿开多少门才能拿到宝物。

思路:直接枚举所有墙的端点+宝物的位置作为一条线段, 求出与之相交的最少线段数。就是答案。

nyoj Code:

#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>using namespace std;const int N = 35;const int INF = 0xffffff;const double eps = 1e-8;struct POINT{    double x, y;};struct LINE{    POINT a, b;}l[N];int n;double cross(POINT o, POINT a, POINT b){    return (a.x - o.x) * (b.y - o.y) - (a.y - o.y) * (b.x - o.x);}int Judge(POINT X, POINT Y){    int ans = 0;    for(int i = 0; i < n; i ++){//        printf("cross = %.2lf\n", cross(X, l[i].a, l[i].b) * cross(Y, l[i].a, l[i].b));        if(cross(X, l[i].a, l[i].b) * cross(Y, l[i].a, l[i].b) < -eps)        ans ++;    }//    printf("ans = %d\n", ans);    return ans;}int main(){    int T;    scanf("%d", &T);    while(T --){        scanf("%d", &n);        if(n == 0){            puts("1");            continue;        }        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);        }        POINT d;        scanf("%lf %lf", &d.x, &d.y);        int ans = INF;        for(int i = 0; i < n; i++){            ans = min(Judge(l[i].a, d), ans);            ans = min(Judge(l[i].b, d), ans);//            printf("ans = %d\n", ans);        }        printf("%d\n", ans + 1);    }    return 0;}

Poj的数据较强。

需要注意的点:

1.即使墙的数目为0,也需要知道宝物的位置。

2.Poj这道题是输入一组数据,但是好像是多线程。

3.判断相交直接叉积小于0就好。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 小孩上中班还不认识数字怎么办 中班小孩数字都不认识怎么办 中班小孩记不住数字怎么办 中班小孩不肯练数字描红怎么办 2个月吃母乳婴儿缺钙怎么办 月经期接吻水多怎么办 4岁宝宝晚上尿多怎么办 2岁宝宝晚上尿多怎么办 3岁宝宝晚上尿多怎么办 宝宝拉肚子拉绿色的屎怎么办 婴儿吃奶粉大便干燥怎么办 母乳宝宝不拉大便怎么办 我儿子8岁拉肚子怎么办 1岁宝宝经常便秘怎么办 两个月宝宝拉水怎么办 宝宝吃奶粉上火便秘怎么办 20多天的宝宝便秘怎么办 宝宝五十天消化不良不拉屎怎么办 一周七个月宝宝消化不良拉屎怎么办 孩子总是消化不良拉屎不成型怎么办 一岁宝宝长牙慢怎么办 一岁宝宝不喝水怎么办 七个月的宝宝咳嗽怎么办 怀孕七个月感冒了怎么办 苹果汁弄到白色衣服怎么办 宝宝大便干燥拉不出来怎么办 婴儿吃过青菜米粉呕吐怎么办 50天宝宝便秘5天怎么办 8个月婴幼儿便秘怎么办 1个月婴幼儿便秘怎么办 榨汁后的苹果渣怎么办 宝宝6个月后容易生病怎么办 婴儿头型睡偏了怎么办 6个月婴儿不吃奶怎么办 宝宝秋季腹泻反复发烧怎么办 纯甄过期一个月怎么办 四个月宝宝不吃奶瓶怎么办 四个月宝宝不吃奶粉怎么办 婴儿三四天不大便怎么办 婴儿几天不拉大便怎么办 新生儿6天不拉屎怎么办