• Wannafly挑战赛26 御坂网络


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

    御坂网络

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

    题解:暴力!暴力出奇迹,分别以每一个顶点作为圆心,看剩下的圆心之间的距离是否相同。qwq

    题目描述

    作为「Misaka Network」的中心司令塔的 LastOrder出事了,为了维持 「Misaka Network」的正常工作,需要临时选出一个Sister作为中心司令塔。

    为了弥补能力上的不足,对于选出的Sister有一些要求。
    具体来说,平面上有 n 个 Sister,问能否找到一个Sister作为中心司令塔,使得其他 Sister 都在以她为圆心的一个圆上,如果找不到这样的Sister,则输出 "-1"(不含引号)。

    输入描述:

    第一行一个数 n
    接下来 n 行,第 i 行两个整数 xi, yi ,表示第 i 个Sister在平面上的坐标。

    输出描述:

    输出共一个数,表示选出的Sister的编号,如果找不到则输出 "-1"。

    示例1

    输入

    复制

    3
    1 1
    0 1
    1 2

    输出

    复制

    1

    备注:

    3 ≤ n ≤ 1000,-109≤ xi, yi ≤ 109 ,所有坐标互不相同。
    #include <iostream>
    using namespace std;
    typedef long long ll;
    const int maxn=1e4+5;
    ll a[maxn],b[maxn];
    ll d[maxn];
    int main(){
        ll n;
        cin>>n;
        for(ll i=1;i<=n;i++){
            cin>>a[i]>>b[i];
        }
        for(ll i=1;i<=n;i++){
            ll num=0;
            for(ll j=1;j<=n;j++){
                if(i!=j)
                    d[++num]=(a[i]-a[j])*(a[i]-a[j])+(b[i]-b[j])*(b[i]-b[j]);
            }
            ll flag=1;
            for(ll j=1;j<num;j++){
                if(d[j]!=d[j+1]) flag=0;
                if(flag){
                    cout<<i;
                    return 0;
                }
            }
        }
        cout<<"-1";
        return 0;
    }
  • 相关阅读:
    数据库表设计--备份记录的表设计优化
    WINDOWS CLUSTER -- 时间不同步导致的群集问题
    SQL Server--存在则更新问题
    MySQL--Ansible推送密钥实现免密码登录
    我命由我不由天
    hive中同源多重insert写法
    单文件数据库
    NTP时钟同步配置
    SQL中左连接on and条件和where条件执行先后顺序
    maven引入CDH依赖包
  • 原文地址:https://www.cnblogs.com/UUUUh/p/10284060.html
Copyright © 2020-2023  润新知