京东2017机试题目总结
来源:互联网 发布:鹿晗人品知乎 编辑:程序博客网 时间:2024/05/19 10:35
- 站队
- 终结者C
站队
有一条很长的队伍,队伍里面一共有n个人。所有的人分为三类:警察,小偷和普通人。将队伍里面的人从前到后由1到n编号,编号为i的人与编号为j的人的距离为i与j之差的绝对值。
每一个警察有一个能力值x,表示他能够监视与他距离不超过x的所有人,小偷被警察发现当且仅当他被一个或多个警察监视到。你知道在整条队伍中,一共有多少个小偷会被警察发现吗?
在【1】中有所有的2017年京东的题目。
这道题目,基本上看不出有什么难点,唯一的就是要注意效率,效率太低的话无法通过。
#include <iostream>#include <vector>using namespace std;int main() { int num; string str; while( cin >> num >> str) { if(num != str.size()) continue; vector<bool> rec(false, num); int res = 0; for(int ind = 0; ind < num; ind++ ) { if(isdigit(str[ind])) { int diff = str[ind] - '0'; int small = ind - diff >= 0? ind - diff:0; int bigger = ind + diff < num?ind + diff: num-1; for(int i = small; i <= bigger; i++ ) { if(str[i] == 'X' ) { str[i] = '#'; res++; } } } } cout << res<< endl; } return 0;}
终结者C
收到情报,有批新造的机器人要运输到前线。小C将去破坏机器人的运输。小C将激光炮放置在公路的一旁,等运输车经过的时候发射(假设激光炮一定可以射穿车辆)。由于能源有限,激光炮只能发射两次。可以认为激光炮放在坐标轴的原点处,并向y轴正方向发射。每辆运输车可以看作是一个矩形,起始的x轴坐标为Xi ,所有的车均位于第一象限,长度为Li,速度为1,朝x轴负方向运动。即经过t时间后,该车车头的x坐标为Xi-t,车尾坐标为Xi-t+Li 。只要打中车的任何一个部分就算击中。
请你算算,他在哪两个时刻发射,才能摧毁最多的运输车【2】。
#include <iostream>#include <vector>using namespace std;bool isHit(int a1, int stt, int a2) { return (a1 <= stt && a2 >= stt);} int count_hit(int fst, int sed, int num_car, vector<pair<int, int>>& car, vector<int>& car_tail) { int cnt_hit = 0; for(int idx = 0; idx < num_car; idx++) if( isHit(car[idx].first, car[fst].first, car_tail[idx]) || isHit(car[idx].first, car[sed].first, car_tail[idx])) cnt_hit++; return cnt_hit; } void CountNumberOfHittedCar(void) { int num_car, res = 0; cin >> num_car; { vector<pair<int, int>> car(num_car); vector<int> car_tail(num_car, 0); int a, b; for(int ind = 0; ind < num_car; ind++) { cin.clear(); cin >> a >> b; car[ind].first = a; car[ind].second = b; car_tail[ind] = a + b; } for(int fst = 0; fst < num_car; fst++) { for(int sed = 1; sed < num_car; sed++) { int num_hit = count_hit(fst, sed, num_car, car, car_tail) ; if(num_hit > res) res = num_hit; } } } cout << res << endl;} int main() { CountNumberOfHittedCar(); return 0;}
参考链接:
【1】京东机试题目:http://discuss.acmcoder.com/topic/58e78ec01a2f85620527f2d0
【2】终结者C:http://discuss.acmcoder.com/topic/58e78ec01a2f85620527f2d0
0 0
- 京东2017机试题目总结
- Unity3d 机试题目 坦克大战总结
- 2017面试题总结
- .net机试题总结
- 2017前端面试题总结
- 2017 android面试题总结
- 华为机试题练习总结
- 一道简单的机试题目引发的移位总结
- 试题总结
- 试题总结
- 试题总结
- 链表面试笔试题目总结
- 2014华为校招机试题目总结
- 链表面试笔试题目总结
- 2017自己前端面试题总结
- 2017年 Android面试题 总结
- [转载]2017年iOS面试题总结
- 面试题总结(自己总结)
- 京东笔试之石头分堆
- c++中字符串函数(过程)的详细解释
- 浅谈C/C++回调函数(Callback)& 函数指针
- AndroidStudio导入PullToRefresh—RecyclerView-Extention
- 目标跟踪 浅谈
- 京东2017机试题目总结
- Lumen上使用Dingo/Api做API开发时用JWT-Auth做认证的实现
- ubuntu下安装cuda,cudnn以及tensorflow(gpu)
- Python调用“ImageMagick”:图片格式转换、尺寸修改、属性重构及加水印
- MyBaits缓存原理(源码级跟踪)
- easyui常见属性
- 对于多特征权值参数优化问题
- html5画布基础知识
- leetcode [Rotate Array]//待整理多种解法