网易2018校招内推编程题-堆棋子-C++实现
链接:https://www.nowcoder.com/questionTerminal/27f3672f17f94a289f3de86b69f8a25b
来源:牛客网
- 热度指数:14085 时间限制:1秒 空间限制:32768K
- 算法知识视频讲解
输入描述:
输入包括三行,第一行一个整数n(1 ≤ n ≤ 50),表示棋子的个数
第二行为n个棋子的横坐标x[i](1 ≤ x[i] ≤ 10^9)
第三行为n个棋子的纵坐标y[i](1 ≤ y[i] ≤ 10^9)
输出描述:
输出n个整数,第i个表示棋盘上有一个格子至少有i个棋子所需要的操作数,以空格分割。行末无空格 如样例所示:
对于1个棋子: 不需要操作
对于2个棋子: 将前两个棋子放在(1, 1)中
对于3个棋子: 将前三个棋子放在(2, 1)中
对于4个棋子: 将所有棋子都放在(3, 1)中
输入
4
1 2 4 9
1 1 1 1
输出
0 1 3 10
解法
暴力枚举所有可能的点。
如图所示,黑点为输入点。所需遍历的点为红线的交点,红圈表示。
当时自己写的是遍历了外围红线所构成的封闭矩形里面所有的点了,只有60%的AC率,原因超时。
看了康学长的代码,才知道有些点不需要遍历,只需要遍历红线交点即可。
自己又重新写了一遍,给大家参考。

#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;
void getInput(vector<int>&arr, const int &k)
{
for (int i = 0; i < k; i++)
{
cin >> arr[i];
}
}
void getDist(vector<int>&x, vector<int>&y, vector<int>&dist)
{
int size = x.size();
for (int i = 0; i < size; ++i)
{
for (int j = 0; j < size; ++j)//遍历所有组合点
{
vector<int> tempdist(size,0);
for (int k = 0; k < size; ++k)
{
tempdist[k] = abs(x[k] - x[i]) + abs(y[k] - y[j]);
}
sort(tempdist.begin(),tempdist.end());//单点距离排序
for (int m = 1; m < size; ++m)//多点距离和升序
{
tempdist[m] = tempdist[m - 1] + tempdist[m];
}
if (dist.size() == 0)
{
dist = tempdist;
}
else
{
for (int m = 0; m < size; ++m)//选择最小
{
if (tempdist[m] < dist[m])
dist[m] = tempdist[m];
}
}
}
}
}
int main()
{
int n;
vector<int> result;
cin >> n;
vector<int> x(n,0), y(n,0);
getInput(x, n);
getInput(y, n);
getDist(x,y, result);
for (int i = 0; i<result.size(); ++i)
{
cout << result[i] << " ";
}
cout << endl;
return 0;
}
网易2018校招内推编程题-堆棋子-C++实现的更多相关文章
- 网易2019校招内推编程题-瞌睡-C++实现
[编程题] 瞌睡 时间限制:1秒 空间限制:262144K 小易觉得高数课太无聊了,决定睡觉.不过他对课上的一些内容挺感兴趣,所以希望你在老师讲到有趣的部分的时候叫醒他一下.你知道了小易对一堂课每分钟 ...
- 网易2019校招内推编程题-俄罗斯方块-C++实现
[编程题] 俄罗斯方块 时间限制:1秒 空间限制:262144K 小易有一个古老的游戏机,上面有着经典的游戏俄罗斯方块.因为它比较古老,所以规则和一般的俄罗斯方块不同.荧幕上一共有 n 列,每次都会有 ...
- NE2018届校招内推笔试——数据挖掘
[单选题|2分/题] 1.在只有两类的情况下,二维特征向量通过共享相同的协方差矩阵的正态分布生成,其中协方差矩阵为: 均值向量分别为:,则根据贝叶斯分类,样本分类为:() A. 分类2 B. 无法确定 ...
- 剑指Offer——网易校招内推笔试题+模拟题知识点总结
剑指Offer--网易校招内推笔试题+模拟题知识点总结 前言 2016.8.2 19:00网易校招内推笔试开始进行.前天晚上利用大约1小时时间完成了测评(这个必须做,关切到你能否参与面试).上午利用2 ...
- 学生党如何拿到阿里技术offer: 《2016阿里巴巴校招内推offer之Java研发工程师(成功)》
摘要: 这篇文章字字珠玑,这位面试的学长并非计算机相关专业,但是其技术功底足以使很多计算机专业的学生汗颜,这篇文章值得我们仔细品读,其逻辑条理清晰,问题把握透彻,语言表达精炼,为我们提供了宝贵的学习经 ...
- 阿里提前批校招内推offer经历
经过一个半月的阿里内推面试,今天终于收到了阿里的offer邮件 .阿里的内推面试一共有四轮,本人是7月19号投的内推邮件,8月28号收到了offer的邮件.首先本人谈谈内推的看法.内推是公司招聘人才的 ...
- 2016 网易校招内推C/C++第二场8.6
选择题20个,每个1.5,编程题3个,每个20,简答题1个10分. 解: 第二题,一开始喵了一眼,好开心,这不是水题么,第一反应想到的是递归,然后马上就写了,结果case10%,一脸蒙蔽,数据值很大, ...
- DDCX2018届校招内推笔试——算法工程师
-------------------------------------------------------------------------[选择题]---------------------- ...
- 网易2016研发project师编程题
http://www.nowcoder.com/test/970447/summary [编程题] 小易的升级之路 小易常常沉迷于网络游戏.有一次,他在玩一个打怪升级的游戏,他的角色的初始能力值为 a ...
随机推荐
- Dart基础-泛型和库
https://blog.csdn.net/hekaiyou/article/details/46774727
- CSS 层级选择器
CSS 层级选择器 注:使用空格分隔,塞选到最后一项应用. 标签选择器 下 标签选择器 父标签 --> 指定子标签添加css属性 <html> <head> <!- ...
- Python将list中的string批量转化成int/float
data = ['] data = map(eval, data) print data 输出:[1, 3.2, 2] 但是在Python3下我们输入: ls=[1,2,3] rs=map(str,l ...
- JS(JavaScript)的初了解4(更新中···)
1.JS的本质就是处理数据.数据来自于后台的数据库. 所以变量就起到一个临时存储数据的作用. ECMAScript制定了JS的数据类型. 数据类型有哪些? 字符串 String 数字 Num ...
- easyUI使用datagrid-detailview.js实现二级列表嵌套
本文为博主原创,转载请注明: 在easyUI中使用datagrid-detailview.js可快速实现二级折叠列表,示例如下: 注意事项: 原本在谷歌浏览器进行示例测试的,url请求对应的json文 ...
- 基于 arduino 的低功耗无线传感结点设计
发送端 仿真图: *仿真图中使用使用TMP传感器(LM34)代替实际使用的DHT11传感器. 连接方式: DHT11的正极(VCC)与5V电源接口连接 DHT11的负极(GND)与GND连接 DHT1 ...
- 使用 R 语言挖掘 QQ 群聊天记录
1.获取数据 从 QQ 消息管理器中导出消息记录,保存的文本类型选择 txt 文件.这里获取的是某群从 2016-04-18 到 2016-05-07 期间的聊天记录,记录样本如下所示. 消息记录(此 ...
- swagger2的接口文档
以前见过一个swagger2的接口文档,特别好用,好看,对接口中入参描述的很详细:适合用于项目的开发 后来自己做项目的时候,没有找到这个swagger版本 <dependency> < ...
- 《HTTP 权威指南》笔记:第十五章 实体与编码
 如果把 「HTTP 报文」想象为因特网货运系统的「箱子」,那么「HTTP 实体」就是报文中的实际的「货物」. 其中,实体又包含了「实体首部」 和 「实体主体」,实体首部用于描述各种参数,实体主体就 ...
- yii中通过HTTP post接收
创建一个CURL.php的文件然后引用 1 <?php namespace frontend\models; class Curl { public function getCurl($url, ...