灯塔

链接:https://www.nowcoder.com/acm/contest/159/A
来源:牛客网
 

灯塔

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 131072K,其他语言262144K
64bit IO Format: %lld

题目描述

Z市是一座港口城市,来来往往的船只依靠灯塔指引方向。
在海平面上,存在n个灯塔。每个灯塔可以照亮以它的中心点为中心的90°范围。特別地, 由于特殊限制,每个灯塔照亮范围的角的两条边必须要么与坐标轴平行要么与坐标轴成45°。 由于经费限制,Z市的灯塔只能被点亮一座。你需要求出在这种情况下,是否存在一座灯塔能够照亮Z市的所有灯塔。

输入描述:

第一行一个整数T,表示数据组数。
对于每组数据,第一行一个整数n,表示灯塔的数量。
接下来n行,每行两个整数xi,yi,表示第i座灯塔的坐标点。

输出描述:

如果存在一座灯塔能够照亮Z市的所有灯塔则输出Yes,否则输出No(区分大小写)。

示例1

输入

复制

2
4
1 1
1 2
2 1
2 2
5
4 7
0 4
7 3
3 0
3 4

输出

复制

Yes
No

备注:

n≤1000000,T≤10,0≤|xi|,|yi|≤109

代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>

using namespace std;

struct A
{
    long long x,y;
}a[1000005];

long long n,max_x,max_y,t,min_x,min_y,min_b1,max_b1,min_b2,max_b2;

int main()
{
    cin>>t;
    while(t--)
    {
        int flag=0;
        max_x=max_y=max_b1=max_b2=-1000000010;
        min_x=min_y=min_b1=min_b2=1000000010;
        cin>>n;
        for(int i=1;i<=n;i++) scanf("%lld%lld",&a[i].x,&a[i].y);
        for(int i=1;i<=n;i++) {
             max_x=max(max_x,a[i].x);    //分别求max(x),min(x),max(y),min(y),max(x+y),min(x+y),max(x-y),min(x-y);
             min_x=min(min_x,a[i].x);
             max_y=max(max_y,a[i].y);
             min_y=min(min_y,a[i].y);
             min_b1=min(min_b1,a[i].x+a[i].y);
             max_b1=max(max_b1,a[i].x+a[i].y);
             min_b2=min(min_b2,a[i].x-a[i].y);
             max_b2=max(max_b2,a[i].x-a[i].y);
        }
        for(int i=1;i<=n;i++)
        {
            if(((a[i].x==max_x||a[i].x==min_x)&&(a[i].y==max_y||a[i].y==min_y))||((a[i].x+a[i].y==max_b1||a[i].x+a[i].y==min_b1)&&(a[i].x-a[i].y==max_b2||a[i].x-a[i].y==min_b2)))
            {
                flag=1;
                break;
            }
        }
        if(flag) printf("Yes\n");
        else printf("No\n");
    }
    return 0;
}

 

您好!要在CentOS上安装灯塔(Lighthouse),您可以按照以下步骤进行操作: 1. 首先,确保您的CentOS系统已经安装了Docker。如果没有安装,请先安装Docker。您可以通过以下命令进行安装: ``` sudo yum install docker ``` 2. 安装完成后,启动Docker服务: ``` sudo systemctl start docker ``` 3. 下载灯塔的Docker镜像。可以使用以下命令下载最新版本的灯塔镜像: ``` sudo docker pull ethereum/lighthouse ``` 4. 创建一个存储灯塔数据的目录。您可以选择任意位置,比如在用户主目录下创建一个lighthouse目录: ``` mkdir ~/lighthouse ``` 5. 运行灯塔容器。使用以下命令来启动灯塔容器,并将数据目录映射到容器内部的`/root/.lighthouse`目录: ``` sudo docker run -d --restart=always -v ~/lighthouse:/root/.lighthouse -p 9000:9000 -p 5052:5052 --name lighthouse ethereum/lighthouse lighthouse --network=mainnet --http --http-port=9000 --ws --ws-port=5052 ``` 这个命令将在后台运行一个名为`lighthouse`的容器,并将容器的9000端口映射到主机的9000端口,5052端口映射到主机的5052端口。 6. 验证灯塔是否成功启动。您可以使用以下命令来检查容器的状态: ``` sudo docker ps ``` 如果看到名为`lighthouse`的容器正在运行,则说明灯塔已成功安装。 现在,您已经成功在CentOS上安装了灯塔。您可以通过浏览器访问`http://<您的主机IP>:9000`来访问灯塔的Web界面,并使用5052端口进行WebSocket连接。 请注意,灯塔将使用较多的系统资源,因此请确保您的系统具有足够的内存和处理能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值