网易2018校园招聘:射击游戏 [python]
'''
[编程题] 射击游戏
时间限制:1秒
空间限制:32768K
小易正在玩一款新出的射击游戏,这个射击游戏在一个二维平面进行,小易在坐标原点(0,0),平面上有n只怪物,
每个怪物有所在的坐标(x[i], y[i])。小易进行一次射击会把x轴和y轴上(包含坐标原点)的怪物一次性消灭。
小易是这个游戏的VIP玩家,他拥有两项特权操作:
1、让平面内的所有怪物同时向任意同一方向移动任意同一距离
2、让平面内的所有怪物同时对于小易(0,0)旋转任意同一角度
小易要进行一次射击。小易在进行射击前,可以使用这两项特权操作任意次。
小易想知道在他射击的时候最多可以同时消灭多少只怪物,请你帮帮小易。
所有点对于坐标原点(0,0)顺时针或者逆时针旋转45°,可以让所有点都在坐标轴上,所以5个怪物都可以消灭。
输入描述:
输入包括三行。
第一行中有一个正整数n(1 ≤ n ≤ 50),表示平面内的怪物数量。
第二行包括n个整数x[i](-1,000,000 ≤ x[i] ≤ 1,000,000),表示每只怪物所在坐标的横坐标,以空格分割。
第二行包括n个整数y[i](-1,000,000 ≤ y[i] ≤ 1,000,000),表示每只怪物所在坐标的纵坐标,以空格分割。
输出描述:
输出一个整数表示小易最多能消灭多少只怪物。
输入例子1:
5
0 -1 1 1 -1
0 -1 -1 1 1
输出例子1:
5
'''
'''
解题思路:寻找垂直线
利用已知的点,寻找两条相互垂直的直线,使落在这条直线上的点最多,点的数量就是小易最多能消灭的怪物数量
先选出两个点连成一条直线,然后选出第三个点,这第三个点不能和前两个点重合,也不能在前两个点连成的直线上
之后去找第四个点,如果第四个点在前两个点所连成的直线上,或者和第三个点组成的直线与上一条直线垂直,则记数变量加1
遍历完后所有情况后,输出最大的记数变量即可
'''
'''
代码运行结果:
运行超时:您的程序未能在规定时间内运行结束,请检查是否循环有错或算法复杂度过大。
case通过率为40.00%
'''
def main():n = int(input())x_cords = [i for i in map(int, input().split())]y_cords = [j for j in map(int, input().split())]max_ = -1for i1 in range(n):for i2 in range(i1+1, n):dx_12 = x_cords[i1] - x_cords[i2]dy_12 = y_cords[i1] - y_cords[i2]for i3 in range(n):dx_13 = x_cords[i1] - x_cords[i3]dy_13 = y_cords[i1] - y_cords[i3]if i3 == i1 or dy_12*dx_13 == dy_13*dx_12:continueelse:count = 0for i4 in range(0, n):dx_14 = x_cords[i1] - x_cords[i4]dy_14 = y_cords[i1] - y_cords[i4]dx_34 = x_cords[i3] - x_cords[i4]dy_34 = y_cords[i3] - y_cords[i4]if dy_12*dx_14 == dy_14*dx_12 or dx_12*dx_34 == -dy_12*dy_34:count += 1if max_ < count:max_ = countif max_ == -1:max_ = nprint(max_)if __name__ == '__main__':main()
网易2018校园招聘:射击游戏 [python]相关推荐
- 网易2018校园招聘:合唱 [python]
''' [编程题] 合唱 时间限制:2秒 空间限制:131072K 小Q和牛博士合唱一首歌曲,这首歌曲由n个音调组成,每个音调由一个正整数表示. 对于每个音调要么由小Q演唱要么由牛博士演唱,对于一系列 ...
- 数据分析真题日刷 | 网易2018校园招聘数据分析工程师笔试卷
七月第一天,希望大家下半年都能「翻身」! 今日真题 网易2018校园招聘数据分析工程师笔试卷(来源:牛客网) 题型 客观题:单选20道:主观题:问答3道 完成时间 120分钟 牛客网评估难度系数 四颗 ...
- 网易2018校园招聘编程题真题集合
1/8 [编程题]魔法币 #include<bits/stdc++.h> using namespace std; #define clr(a) memset(a, 0, sizeof(a ...
- 网易2018校园招聘编程题
[编程题] 魔法币 时间限制:1秒 空间限制:32768K 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0) ...
- 网易2018校园招聘编程题真题集合 详解
##编程题 ###一.魔法币 ####描述: 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入 xxx(xxx 可以为 00 ...
- 魔法王国java_网易2018校园招聘面试编程题真题与参考答案集合
[编程题] 魔法币 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币. 魔法机器1: ...
- [2018]试卷: 网易2018校园招聘编程题真题集合
[编程题] 魔法币 小易准备去魔法王国采购魔法神器,购买魔法神器需要使用魔法币,但是小易现在一枚魔法币都没有,但是小易有两台魔法机器可以通过投入x(x可以为0)个魔法币产生更多的魔法币. 魔法机器1: ...
- 网易2018校园招聘:重排数列 [python]
''' [编程题] 重排数列 时间限制:1秒 空间限制:100768K 小易有一个长度为N的正整数数列A = {A[1], A[2], A[3]..., A[N]}. 牛博士给小易出了一个难题: 对数 ...
- 网易2018校园招聘:相反数 [python]
''' [编程题] 相反数 时间限制:1秒 空间限制:32768K 为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数". ...
最新文章
- linux qemu 源码编译
- 说说 RabbiMQ 的应答模式
- UNITY3D与iOS交互解决方案
- BZOJ 3653: 谈笑风生(离线, 长链剖分, 后缀和)
- 特斯拉:感谢A股股民!
- 【Maven】mvn install 本地jar 或者 项目 添加到maven仓库中
- Spring MVC http消息转换类
- python 菜鸟-Python3 模块
- sqlite3 判断数据库和表的状态
- 猿编程python,python编程猿
- 好用的mysql数据字典工具
- java开发工程师简历项目经验怎么写?应该注意哪些事项?
- 64位计算机比32快多少,电脑系统应该选择64位还是32位 到底哪个速度更快?
- LVDS接口定义详解
- 无法复制:数据错误(循环冗余检查)的解决方法
- 【Linux】Shell脚本:while read line无法读取最后一行???
- 做抖音自媒体能赚钱吗?
- 目标检测中IoU(Intersection over Union)的概念理解
- gn、ninja的安装-Ubuntu18.04
- 使用tb6612模块驱动直流电机
热门文章
- java 解析p12_java引用微信支付的p12证书文件
- 英雄联盟手游常见问题
- 饭后吃一种水果就能化痰止咳(附赠10个化痰小偏方)
- mysql中复制表结构的方法(亲测通过)
- 计算机win10分区软件,如何利用Win10系统DiskPart工具进行GPT硬盘分区
- 数字图像处理之matlab实验(一):基本操作
- 基于51单片机的小区智能防盗门禁密码锁 proteus仿真程序设计
- 怎样使用计算机函数求出等级,巧用Excel函数出练习题
- node.js详细安装教程及使用
- python数组列表添加一行一列np.rowstack()np.column_stack()