满月——有技巧的暴力

2023-10-26

题目描述

某一天你要去看满月, 但是你发觉月亮只能看到一部分。
现在你看到这些部分全部抽象成平面上的点, 并且这些点只可能是在月亮的中心或者是月亮的边缘上。
现在问你, 月亮可能在什么位置上(就是哪个点可以做月亮的中心)。

输入

第一行一个整数N,表示有多少个点。(N<1000)
下面N行每行两个实数,表示点的坐标。

输出

一行一个整数, 表示读入中的第几个点。

样例输入

5
0 0
3 4
4 3
-3 4
-4 3

样例输出

1

————————————————————————————————————————————————————————————————
本题的题意比较简单,就是要求出月亮中心的点可能是哪个,刚开始做的时候也是有点不知所措,以为是什么二分之类的,后来发现可以用暴力的方法来解决问题
用一个结构体,里面有两个变量,标志着个点的横纵坐标,然后用dis函数来求解两个点之间的距离
开始想将求出来的两点间的的距离放在数组里,之后定义一个flag变量来判断是否里面的距离都是相等的,如果是相等的,那么上面for循环这个i的大小就是答案,后来发发现这至少三层 for 复杂度有点高,然后放弃了这种做法
=>=> 关键点:于是乎我就判断没两个相邻的求出的距离是否相等,如果相邻的两个距离都不想等,那么这个点一定不是月亮的中心,如果每次和之前的距离进行比较,没有发现不同,那么这个点就一定是月亮的中心
对于以上所述,比较两点之间的距离的时候,这个点和本身不是同一个点,换句话说不用求解自己到自己的距离,会干扰答案

#pragma GCC optimize (2)
#pragma G++ optimize (2)
#include <bits/stdc++.h>
#include <algorithm>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
using namespace std;
#define wuyt main
typedef long long ll;
#define HEAP(...) priority_queue<__VA_ARGS__ >
#define heap(...) priority_queue<__VA_ARGS__,vector<__VA_ARGS__ >,greater<__VA_ARGS__ > >
template<class T> inline T min(T &x,const T &y){return x>y?y:x;}
template<class T> inline T max(T &x,const T &y){return x<y?y:x;}
//#define getchar()(p1 == p2 && (p2 = (p1 = buf) + fread(buf, 1, 1 << 21, stdin), p1 == p2) ? EOF : *p1++)
//char buf[(1 << 21) + 1], *p1 = buf, *p2 = buf;
ll read(){ll c = getchar(),Nig = 1,x = 0;while(!isdigit(c) && c!='-')c = getchar();
if(c == '-')Nig = -1,c = getchar();
while(isdigit(c))x = ((x<<1) + (x<<3)) + (c^'0'),c = getchar();
return Nig*x;}
#define read read()
const ll inf = 1e15;
const int maxn = 2e5 + 7;
const int mod = 1e9 + 7;
#define start int wuyt()
#define end return 0
struct node
{
    int x,y;
};
double dis(int x1,int y1,int x2,int y2){
    return (double)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
}
double num[10000];
start{
    int n=read;
    node cnt[n+1];
    for(int i=1;i<=n;i++)
    {
        cnt[i].x=read;
        cnt[i].y=read;
    }
 
    for(int i=1;i<=n;i++){
        int flag=1;int ct=1;
        for(int j=1;j<=n;j++){
            if(i!=j){
                num[ct]=dis(cnt[i].x,cnt[i].y,cnt[j].x,cnt[j].y);
                num[0]=num[1];
                if(num[ct]!=num[ct-1]){
                    flag=0;
                    break;
                }
                ct++;
            }
            if(flag==0) break;
            if(flag==1&&j==n){
                printf("%d\n",i);
                return 0;
            }
        }
    }
    end;
}
 
/**************************************************************
    Language: C++
    Result: 正确
    Time:1 ms
    Memory:2100 kb
****************************************************************/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

满月——有技巧的暴力 的相关文章

  • uniapp小程序上传图片裁剪效果demo(整理)

  • 朋友圈--并查集

    LeetCode 朋友圈 班上有 N 名学生 其中有些人是朋友 有些则不是 他们的友谊具有是传递性 如果已知 A 是 B 的朋友 B 是 C 的朋友 那么我们可以认为 A 也是 C 的朋友 所谓的朋友圈 是指所有朋友的集合 给定一个 N N
  • 关于 Pytorch 学习的一些小困惑的理解

    目录 小记 20 2 27 model model cuda 和model model to cuda 是等价的嘛 模型会自动初始化嘛 训练好的网络模型是如何保存的 又是如何再加载的 哪些部分可以移到GPU上运算 关于torch nn mu
  • 【毕业设计】SVM 分类器和深度学习的方法对多种无人机型号进行分类识别【程序+论文】

    利用 SVM 分类器和深度学习的方法对多种无人机型号进行分类识别 但是对于同种型 号无人机不同个体识别率不高 射频指纹 Radio Frequency Distinct Native Attribute RFDNA 的提出为解决这一问题提供
  • RabbitMQ--交换机、队列、消息

    交换机 autoDelete 如果设置为true 唯一的一个交换机或者队列解绑 那么该队列将会被自动删除 交换机类型 faout 经过交换机的消息直接转到所有与这个交换器绑定的队列中 无视rounting key的存在 direct 经过交
  • 国密:SM2公私钥加签验签

    一 工具类 POM中增加hutool
  • jdbc mysql 重连_JDBC实现Mysql自动重连机制的方法详解

    JDBC是一个用于连接和访问各种数据库的应用编程接口 它可以提供Java程序和各种数据库之间的连接服务 以下是成都seo技术频道编辑带来的实现Mysql自动重连机制的JDBC方法的详细说明 日志 使用连接器 J连接属性 自动连接 真 来避免
  • 我的Docker部署笔记

    Centos7下安装Docker 1 root账户登录 查看内核版本 root localhost uname a Linux localhost localdomain 3 10 0 1160 el7 x86 64 1 SMP Mon O
  • var与let的区别【一看就懂的知识】

    今天偶尔翻看了一本书 JavaScript编程精解 在函数这一章节中难免会看到 作用域 这个字眼 之前对于作用域的概念本就不是很敏感 也就匆匆略过了 反过来看时 才明白这是一个比较重要的点 下面借作用域这一概念深入了解一下本文的重点 var
  • 5.QT5中的connect的实现

    在QT4中 解析信号槽是通过将信号槽的名字转化为字符串 然后通过connect解析该字符串 得到信号函数的相对序号和 然后创建信号connectionlist 但是 所有的检查都在运行时 通过解析字符串进行 这意味着 如果信号槽的名称拼写错
  • springcloud之服务配置中心

    springcloud之服务配置中心 SpringCloud Config简介 Config Server基本使用 Config Client基本使用 Config整合Eureka Config配置搜索路径 SpringCloud Conf
  • 2021.11.7总结

    数据结构 将第三章栈与队列知识点看完了 栈是先进后出表 队列是先进先出表 然后发现了书上有很多题目 慕课上面也有很多题目 只是我自己没写而已 下周从第一章开始写题 然后洛谷很久没写题目了 下周 将数据结构书上和课程的题目写完 到第三章 洛谷
  • 开启OLED透明屏代理之路:高质量显示解决方案的商机

    随着科技的不断进步 OLED透明屏作为一种创新的显示技术 正逐渐在各个领域得到广泛应用 作为一名OLED透明屏代理商 你将有机会参与其中 共享这一蓬勃发展的市场 一 介绍OLED透明屏的概念和特点 1 1 什么是OLED透明屏 OLED透明

随机推荐

  • pandas_数据处理分析基本

    一 Pandas基础用法 20210405 fancy lee 1 pandas介绍 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具 该工具是为了解决数据分析任务而创建的 panda
  • ESP-12F开发环境

    ESP 12F可以使用arduino IDE快速开发 1 首先安装arduino IDE 搜索直接下载即可 2 在文件 gt 首选项 gt 附加开发板管理器网址中添加ESP8266开发板 网址 http arduino esp8266 co
  • PHP curl 传输文件流

    PHP版本5 5以下时可直接使用 拼接要传输的文件的绝对路径即可 params file str replace ABSOLUTE PATH str PHP版本5 5以上时 需要使用curl file create函数 创建一个 CURLF
  • Python中Pickle模块的dump()方法和load()方法

    Python中的Pickle模块实现了基本的数据序列与反序列化 一 dump 方法 pickle dump obj file protocol 注释 序列化对象 将对象obj保存到文件file中去 参数protocol是序列化模式 默认是0
  • docker 使用pytorch在gpu上训练模型

    docker 使用pytorch在gpu上训练模型 安装docker 下载docker image 建立启动容器进入docker虚拟空间 不一定能运行起来 安装docker sudo apt get y install docker io
  • 百度旋转验证码(8-24,js逆向)

    网址 aHR0cHM6Ly96aXl1YW4uYmFpZHUuY29tL2xpbmtzdWJtaXQvdXJs 一 抓包分析 刷新网页 先看第一个包 提交参数是ak和时间戳 ak是定值 返回的参数中 as和tk后面都会用到 然后点击提交链接
  • Android AnimationDrawable动画与APP启动引导页面

    Android AnimationDrawable动画与APP启动 加载引导页面 画面 AnimationDrawable是Android的Frame动画 可以简单的认为此AnimationDrawable能够将一系列资源图片加载成 电影
  • 大数据分析引擎之presto简介

    大数据分析引擎之presto简介 简介 presto是一个大数据分析引擎 不属于hadoop体系 他是基于内存的 他的集群模式是主从式的 他可以与任何的大数据存储引擎做集成 集成的时候使用它的Connectors集成 从这里我们可以他可以和
  • SpringBoot集成mybatis-plus生成实体类

    1 pom xml添加依赖 2 配置mybatis plus 在application yml中添加 配置数据库连接 3 在com dtest02 demo system config下添加MyBatisPlusConfig java 4
  • 踩坑:nacos利用startup.cmd -m standalone启动错误

    1 报错信息 PS D SpringCloud nacos nacos bin gt startup cmd m standalone startup cmd 无法将 startup cmd 项识别为 cmdlet 函数 脚本文件或可运行程
  • 线性代数 --- 最小二乘在直线拟合上的应用与Gram-Schmidt正交化(上)

    最小二乘在直线拟合上的应用 在前一篇最小二乘的文章中 线性代数 投影与最小二乘 下 多元方程组的最小二乘解与向量在多维子空间上的投影 松下J27的博客 CSDN博客多变量方程组的最小二乘 向量到多维子空间上的投影 https blog cs
  • 如何找数组中唯一重复的数?

    如何找数组中唯一重复的数 题目 方法一 不使用辅助空间的方法 思路 1 异或 同0异1 2 一组数连续异或 相当于消除重复的数 所以可以把1到1000这1000个数异或以后 和数组中的1001个元素异或 这样结果就是重复的元素 例 数组为
  • 热门面试题

    Transactional失效场景 没有将使用该注解的类交给Spring管理 也就是该对象不是bean对象 Transactional 应用在非 public 修饰的方法上 同一个类中方法之间的调用 导致 Transactional 失效
  • L - Sticky Situation

    L Sticky Situationhttps vjudge csgrandeur cn problem Kattis stickysituation 题意 给定一个 n 和 n 个数 看存不存在三个数可以构成三角形 include
  • hive中的EXPLODE和LATERAL VIEW

    行转列操作 0 函数说明 EXPLODE col 将 hive 一列中复杂的 array 或者 map 结构拆分成多行 LATERAL VIEW 用法 LATERAL VIEW udtf expression tableAlias AS c
  • 关于Rust

    Rust 文章目录 Rust 开发环境搭建 在线模式 离线模式 引入自定义第三方库 通用编程概念 Hello 注释 印屏 Display 变量 变量可变性 不可变变量与常量 变量冻结 延迟绑定 变量隐藏 数据类型 基本数据类型 类型别名 简
  • android 学习中遇到的知识点(杂)

    1 用xml 合成图片 ic launcher xml 作用 将两个图片组合成一个图片 一个背景图 一个icon
  • Oracle 实例名/服务名 请问SID和Service_Name有什么区别啊?

    可以简单的这样理解 一个公司比喻成一台服务器 数据库是这个公司中的一个部门 1 SID 一个数据库可以有多个实例 如RAC SID是用来标识这个数据库内部每个实例的名字 就好像一个部门里 每个人都有一个自己的名字 2 SERVICE NAM
  • spring boot 整合mybatis

    环境 eclipse Version 2019 06 4 12 0 jdk java version 1 8 0 144 maven Apache Maven 3 6 1 步骤 1 https spring io projects spri
  • 满月——有技巧的暴力

    题目描述 某一天你要去看满月 但是你发觉月亮只能看到一部分 现在你看到这些部分全部抽象成平面上的点 并且这些点只可能是在月亮的中心或者是月亮的边缘上 现在问你 月亮可能在什么位置上 就是哪个点可以做月亮的中心 输入 第一行一个整数N 表示有