码迷,mamicode.com
首页 > 其他好文 > 详细

UVALive - 7020 Robot Race

时间:2017-10-15 19:40:09      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:break   poi   uvalive   ret   ems   ons   set   struct   code   

题意:有个机器人,他在一条线路上走着,他的显示器上应该显示的是路径的剩余距离,但实际上显示屏显示的是欧氏距离,所以问你在路径上有没有一个点,满足距离突然变大(比前一刻距离大)

 

题解:求一下任意2条直线的家教关系,当然你也可以计算点是否在相邻两侧的点为直径的园内,本质是一样的

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e4+5;
struct point
{
    ll x, y;
}p[maxn];

bool judge(point a, point b, point c)
{
    return (b.x-a.x)*(c.x-b.x)+(b.y-a.y)*(c.y-b.y)>=0;
}

int main()
{
    int n;
    while(~scanf("%d",&n)&&n){
        memset(p,0,sizeof(p));
        for(int i=0;i<n;i++){
            scanf("%lld%lld",&p[i].x,&p[i].y);
        }
        bool ok = true;
        for(int i = 0; i < n - 2;i++){
            for(int j=i+2;j<n;j++){
                if(!judge(p[i],p[i+1],p[j])){
                    ok = false;
                    break;
                }
            }
            if(!ok) break;
        }
        printf("%s\n",ok?"Fair":"Unfair");
    }
    return 0;
}
/*
5
5 5
15 5
25 15
15 25
5 25
4
0 0
1 0
2 1
3 0
0
*/

 

UVALive - 7020 Robot Race

标签:break   poi   uvalive   ret   ems   ons   set   struct   code   

原文地址:http://www.cnblogs.com/lalalatianlalu/p/7672741.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!